#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "prescheme.h"
#include "scheme48vm-prelude.h"

static char add_more_channels(long);
static char encode_scalar_value(long, long, char *, long, char*, char*, long*);
static char decode_scalar_value(long, char *, long, char*, char*, long*, long*);
static char integerLE(long, long);
static char integerGE(long, long);
static char shared_binding_undefinedP(long);
static void enqueue_channelB(long, long, long);
static void decode_utf_8B(char *, long, long);
static void copy_vm_string_to_stringUlatin_1B(long, long, long, char*);
static long close_channelB(long);
static long make_blank_return_code(long, long, long, long, long);
static long enter_stringAgc_n(char*, long);
static long add_log_entryAgc(long, long, long, long, long, char);
static long enter_bignum(char *);
static char integerE(long, long);
static long make_channel(long, long, long, long, long, long, long, long);
static long write_vm_string(long, FILE *);
static long Haction4930(long);
static long current_code_vector(void);
static void channel_close_error(long, long, long);
static long integer_bit_count(long);
static long integer_add(long, long);
static long integer_subtract(long, long);
static long integer_multiply(long, long);
static long integer_bitwise_not(long);
static long integer_bitwise_and(long, long);
static long integer_bitwise_ior(long, long);
static long integer_bitwise_xor(long, long);
static long Hinteger_op8301(long, long);
static long Hinteger_op8232(long, long);
static char for_each_imported_binding(char(*)(long));
static long really_preserve_continuation(long);
static void push_exception_setupB(long, long);
static long Hlookup2943(long, long, long);
static long Hlookup2924(long, long, long);
static void HtopD11555(void);
static void HtopD11566(void);
void s48_set_native_protocolB(long);
void s48_set_extension_valueB(long);
long s48_channel_count(void);
long *s48_channels(void);
char s48_os_signal_pending(void);
long s48_imported_bindings(void);
long s48_exported_bindings(void);
long s48_symbol_table(void);
char * s48_set_gc_roots_baseB(void);
char s48_release_gc_roots_baseB(char *);
void s48_reset_external_rootsB(void);
void s48_note_event(void);
void s48_reset_interruptsB(void);
void s48_disable_interruptsB(void);
void s48_add_os_signal(long);
void s48_push_gc_rootsB(char *, long);
char * s48_register_gc_rootB(char *);
void s48_stack_setB(long, long);
long s48_stack_ref(long);
void s48_push(long);
long s48_resetup_external_exception(long, long);
char s48_pop_gc_rootsB(void);
void s48_unregister_gc_rootB(char *);
char * s48_shorten_bignum(char *, long);
long s48_allocate_string(long);
long s48_allocate_bignum(long);
void s48_enable_interruptsB(void);
long s48_set_channel_os_index(long, long);
long s48_enter_string_utf_8(char *);
long s48_enter_string_utf_8_n(char *, long);
long s48_integer_or_floanum_L(long, long);
long s48_integer_or_floanum_G(long, long);
long s48_integer_or_floanum_LE(long, long);
long s48_integer_or_floanum_GE(long, long);
long s48_make_blank_return_code(long, long, long, long);
long s48_enter_string_latin_1_n(char*, long);
long s48_integer_or_floanum_E(long, long);
void s48_close_channel(long);
long s48_enter_string_latin_1(char*);
void s48_string_set(long, long, long);
long s48_string_ref(long, long);
long s48_string_length(long);
void s48_copy_latin_1_to_string_n(char*, long, long);
void s48_copy_latin_1_to_string(char*, long);
void s48_copy_string_to_latin_1(long, char*);
void s48_copy_string_to_latin_1_n(long, long, long, char*);
long s48_string_utf_8_length(long);
long s48_string_utf_8_length_n(long, long, long);
void s48_copy_string_to_utf_8(long, char *);
void s48_copy_string_to_utf_8_n(long, long, long, char *);
void check_stack(void);
long s48_really_add_channel(long, long, long);
long s48_integer_bit_count(long);
long s48_enter_integer(long);
long s48_integer_or_floanum_add(long, long);
long s48_integer_or_floanum_sub(long, long);
long s48_integer_or_floanum_mul(long, long);
long s48_integer_bitwise_not(long);
long s48_integer_bitwise_and(long, long);
long s48_integer_bitwise_ior(long, long);
long s48_integer_bitwise_xor(long, long);
void s48_setup_external_exception(long, long);
long s48_integer_quotient(long, long);
long s48_integer_remainder(long, long);
void s48_copy_stack_into_heap(void);
long s48_get_imported_binding(char*);
void s48_define_exported_binding(char*, long);
void s48_initialize_vm(char *, long);
void s48_post_gc_cleanup(void);
void s48_gc_root(void);
long s48_restart(long, long);
long s48_call_startup_procedure(char**, long);
static long Spending_interruptsS;
static long Snumber_of_channelsS;
static long *Svm_channelsS;
static long Spending_channels_headS;
static long Spending_channels_tailS;
static long *Sutf_8_state_tableS;
static long *Sutf_8_masksS;
static long Stemp0S;
static long Stemp1S;
static char * Sstack_beginS;
static char * Sstack_endS;
static char * Sreal_stack_limitS;
static char * Sbottom_of_stackS;
static long Sheap_continuationS;
static char Sstack_warningPS;
static long Soldspace_beginS;
static long Soldspace_endS;
static long Sexception_handlersS;
static long Sinterrupt_handlersS;
static char * Slast_code_pointer_resumedS;
static long Scurrent_threadS;
static long Ssession_dataS;
static long Sfinalizer_alistS;
static long Sfinalize_theseS;
static long Senabled_interruptsS;
static long Sinterrupted_templateS;
static long Sinterrupted_byte_opcode_return_codeS;
static long Sinterrupted_native_call_return_codeS;
static long Snative_poll_return_codeS;
static long Sexception_return_codeS;
static long Snative_exception_return_codeS;
static long Scall_with_values_return_codeS;
static long Ssaved_pcS;
static long *Sos_signal_ringS;
static long Sos_signal_ring_startS;
static long Sos_signal_ring_readyS;
static long Sos_signal_ring_endS;
static char Sexternal_exceptionPS;
static long Sexternal_exception_nargsS;
static long Simported_bindingsS;
static long Sexported_bindingsS;
static long Sthe_symbol_tableS;
static char * Sexternal_root_stackS;
static char * Sexternal_root_stack_baseS;
static char * Spermanent_external_rootsS;
static long Sempty_logS;
static void (*Spost_gc_cleanupS)(void);
static void (*Sgc_root_procS)(void);
char * SstackS;
char * s48_Sstack_limitS;
char * ScontS;
char * Scode_pointerS;
long SvalS;
long Slast_code_calledS;
char s48_Spending_interruptPS;
long Snative_exception_contS;
long s48_Snative_protocolS;
long s48_Sextension_valueS;
long s48_Scallback_return_stack_blockS;
char s48_Spending_eventsPS;

static char add_more_channels(long index_7X)
{
  long arg0K0;
  long i_13X;
  long i_12X;
  long *new_vm_channels_11X;
  long new_count_10X;
  long y_9X;
  long x_8X;
 {  x_8X = 1 + index_7X;
  y_9X = 8 + (Snumber_of_channelsS);
  if ((x_8X < y_9X)) {
    arg0K0 = y_9X;
    goto L3554;}
  else {
    arg0K0 = x_8X;
    goto L3554;}}
 L3554: {
  new_count_10X = arg0K0;
  new_vm_channels_11X = (long*)malloc(sizeof(long) * new_count_10X);
  if ((NULL == new_vm_channels_11X)) {
    return 0;}
  else {
    arg0K0 = 0;
    goto L3566;}}
 L3566: {
  i_12X = arg0K0;
  if ((i_12X == (Snumber_of_channelsS))) {
    arg0K0 = (Snumber_of_channelsS);
    goto L3639;}
  else {
    *(new_vm_channels_11X + i_12X) = (*((Svm_channelsS) + i_12X));
    arg0K0 = (1 + i_12X);
    goto L3566;}}
 L3639: {
  i_13X = arg0K0;
  if ((i_13X == new_count_10X)) {
    free((Svm_channelsS));
    Svm_channelsS = new_vm_channels_11X;
    Snumber_of_channelsS = new_count_10X;
    return 1;}
  else {
    *(new_vm_channels_11X + i_13X) = 1;
    arg0K0 = (1 + i_13X);
    goto L3639;}}
}
static char encode_scalar_value(long encoding_14X, long value_15X, char * buffer_16X, long count_17X, char *TT0, char *TT1, long *TT2)
{
  long word_21X;
  long word_20X;
  long word_19X;
  long word_18X;
 {  if ((0 == encoding_14X)) {
    if ((count_17X < 1)) {
      *TT0 = 1;
      *TT1 = 1;
      *TT2 = 1;
      return 1;}
    else {
      if ((value_15X < 128)) {
        *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
        *TT0 = 1;
        *TT1 = 0;
        *TT2 = 1;
        return 1;}
      else {
        *TT0 = 0;
        *TT1 = 0;
        *TT2 = 0;
        return 1;}}}
  else {
    if ((1 == encoding_14X)) {
      if ((count_17X < 1)) {
        *TT0 = 1;
        *TT1 = 1;
        *TT2 = 1;
        return 1;}
      else {
        if ((value_15X < 256)) {
          *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
          *TT0 = 1;
          *TT1 = 0;
          *TT2 = 1;
          return 1;}
        else {
          *TT0 = 0;
          *TT1 = 0;
          *TT2 = 0;
          return 1;}}}
    else {
      if ((2 == encoding_14X)) {
        if ((127 < value_15X)) {
          if ((2047 < value_15X)) {
            if ((65535 < value_15X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((240 + ((long)(((unsigned long)(1835008 & value_15X))>>18))));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + ((long)(((unsigned long)(258048 & value_15X))>>12))));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((128 + ((long)(((unsigned long)(4032 & value_15X))>>6))));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((128 + (63 & value_15X)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((count_17X < 3)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 3;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((224 + ((long)(((unsigned long)(61440 & value_15X))>>12))));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + ((long)(((unsigned long)(4032 & value_15X))>>6))));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((128 + (63 & value_15X)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 3;
                return 1;}}}
          else {
            if ((count_17X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 2;
              return 1;}
            else {
              *((unsigned char *) buffer_16X) = (unsigned char) ((192 + ((long)(((unsigned long)(1984 & value_15X))>>6))));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + (63 & value_15X)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 2;
              return 1;}}}
        else {
          if ((count_17X < 1)) {
            *TT0 = 1;
            *TT1 = 1;
            *TT2 = 1;
            return 1;}
          else {
            *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
            *TT0 = 1;
            *TT1 = 0;
            *TT2 = 1;
            return 1;}}}
      else {
        if ((3 == encoding_14X)) {
          if ((65535 < value_15X)) {
            if ((count_17X < 4)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 4;
              return 1;}
            else {
              word_18X = 55232 + ((long)(((unsigned long)value_15X)>>10));
              *((unsigned char *) buffer_16X) = (unsigned char) ((255 & word_18X));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)word_18X)>>8)));
              word_19X = 56320 + (1023 & value_15X);
              *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((255 & word_19X));
              *((unsigned char *) (buffer_16X + 3)) = (unsigned char) (((long)(((unsigned long)word_19X)>>8)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 4;
              return 1;}}
          else {
            if ((count_17X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 2;
              return 1;}
            else {
              *((unsigned char *) buffer_16X) = (unsigned char) ((255 & value_15X));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)value_15X)>>8)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 2;
              return 1;}}}
        else {
          if ((4 == encoding_14X)) {
            if ((65535 < value_15X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                word_20X = 55232 + ((long)(((unsigned long)value_15X)>>10));
                *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)word_20X)>>8)));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((255 & word_20X));
                word_21X = 56320 + (1023 & value_15X);
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)word_21X)>>8)));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((255 & word_21X));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((count_17X < 2)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 2;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)value_15X)>>8)));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((255 & value_15X));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 2;
                return 1;}}}
          else {
            if ((5 == encoding_14X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((255 & value_15X));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)(65280 & value_15X))>>8)));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)(16711680 & value_15X))>>16)));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) (((long)(((unsigned long)value_15X)>>24)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((6 == encoding_14X)) {
                if ((count_17X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 4;
                  return 1;}
                else {
                  *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)value_15X)>>24)));
                  *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)(16711680 & value_15X))>>16)));
                  *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)(65280 & value_15X))>>8)));
                  *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((255 & value_15X));
                  *TT0 = 1;
                  *TT1 = 0;
                  *TT2 = 4;
                  return 1;}}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                return 0;}}}}}}}}
}
static char decode_scalar_value(long encoding_22X, char * buffer_23X, long count_24X, char *TT0, char *TT1, long *TT2, long *TT3)
{
  long arg0K3;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long v_38X;
  long scalar_value_37X;
  long state_36X;
  long c_35X;
  long scalar_value_34X;
  long mask_33X;
  long state_32X;
  long q_31X;
  long code_point_30X;
  long code_point_29X;
  long word1_28X;
  long word0_27X;
  long word1_26X;
  long word0_25X;
 {  if ((0 == encoding_22X)) {
    *TT0 = 1;
    *TT1 = 0;
    *TT2 = (*((unsigned char *) buffer_23X));
    *TT3 = 1;
    return 1;}
  else {
    if ((1 == encoding_22X)) {
      *TT0 = 1;
      *TT1 = 0;
      *TT2 = (*((unsigned char *) buffer_23X));
      *TT3 = 1;
      return 1;}
    else {
      if ((2 == encoding_22X)) {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = 0;
        arg0K3 = 0;
        goto L7184;}
      else {
        if ((3 == encoding_22X)) {
          if ((count_24X < 2)) {
            *TT0 = 1;
            *TT1 = 1;
            *TT2 = 0;
            *TT3 = 2;
            return 1;}
          else {
            word0_25X = (*((unsigned char *) buffer_23X)) + ((((*((unsigned char *) (buffer_23X + 1))))<<8));
            if ((word0_25X < 55296)) {
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = word0_25X;
              *TT3 = 2;
              return 1;}
            else {
              if ((57343 < word0_25X)) {
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = word0_25X;
                *TT3 = 2;
                return 1;}
              else {
                if ((count_24X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 0;
                  *TT3 = 4;
                  return 1;}
                else {
                  if ((56319 < word0_25X)) {
                    *TT0 = 0;
                    *TT1 = 0;
                    *TT2 = 0;
                    *TT3 = 0;
                    return 1;}
                  else {
                    word1_26X = (*((unsigned char *) (buffer_23X + 2))) + ((((*((unsigned char *) (buffer_23X + 3))))<<8));
                    if ((word1_26X < 56320)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      if ((57343 < word1_26X)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        *TT0 = 1;
                        *TT1 = 0;
                        *TT2 = ((-56557568 + (((word0_25X)<<10))) + (1023 & word1_26X));
                        *TT3 = 4;
                        return 1;}}}}}}}}
        else {
          if ((4 == encoding_22X)) {
            if ((count_24X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 0;
              *TT3 = 2;
              return 1;}
            else {
              word0_27X = ((((*((unsigned char *) buffer_23X)))<<8)) + (*((unsigned char *) (buffer_23X + 1)));
              if ((word0_27X < 55296)) {
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = word0_27X;
                *TT3 = 2;
                return 1;}
              else {
                if ((57343 < word0_27X)) {
                  *TT0 = 1;
                  *TT1 = 0;
                  *TT2 = word0_27X;
                  *TT3 = 2;
                  return 1;}
                else {
                  if ((count_24X < 4)) {
                    *TT0 = 1;
                    *TT1 = 1;
                    *TT2 = 0;
                    *TT3 = 4;
                    return 1;}
                  else {
                    if ((56319 < word0_27X)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      word1_28X = ((((*((unsigned char *) (buffer_23X + 2))))<<8)) + (*((unsigned char *) (buffer_23X + 3)));
                      if ((word1_28X < 56320)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        if ((57343 < word1_28X)) {
                          *TT0 = 0;
                          *TT1 = 0;
                          *TT2 = 0;
                          *TT3 = 0;
                          return 1;}
                        else {
                          *TT0 = 1;
                          *TT1 = 0;
                          *TT2 = ((-56557568 + (((word0_27X)<<10))) + (1023 & word1_28X));
                          *TT3 = 4;
                          return 1;}}}}}}}}
          else {
            if ((5 == encoding_22X)) {
              if ((count_24X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 0;
                *TT3 = 4;
                return 1;}
              else {
                code_point_29X = (((*((unsigned char *) buffer_23X)) + ((((*((unsigned char *) (buffer_23X + 1))))<<8))) + ((((*((unsigned char *) (buffer_23X + 2))))<<16))) + ((((*((unsigned char *) (buffer_23X + 3))))<<24));
                if ((code_point_29X < 0)) {
                  *TT0 = 0;
                  *TT1 = 0;
                  *TT2 = 0;
                  *TT3 = 0;
                  return 1;}
                else {
                  if ((55295 < code_point_29X)) {
                    if ((code_point_29X < 57344)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      if ((1114111 < code_point_29X)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        *TT0 = 1;
                        *TT1 = 0;
                        *TT2 = code_point_29X;
                        *TT3 = 4;
                        return 1;}}}
                  else {
                    *TT0 = 1;
                    *TT1 = 0;
                    *TT2 = code_point_29X;
                    *TT3 = 4;
                    return 1;}}}}
            else {
              if ((6 == encoding_22X)) {
                if ((count_24X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 0;
                  *TT3 = 4;
                  return 1;}
                else {
                  code_point_30X = ((((((*((unsigned char *) buffer_23X)))<<24)) + ((((*((unsigned char *) (buffer_23X + 1))))<<16))) + ((((*((unsigned char *) (buffer_23X + 2))))<<8))) + (*((unsigned char *) (buffer_23X + 3)));
                  if ((code_point_30X < 0)) {
                    *TT0 = 0;
                    *TT1 = 0;
                    *TT2 = 0;
                    *TT3 = 0;
                    return 1;}
                  else {
                    if ((55295 < code_point_30X)) {
                      if ((code_point_30X < 57344)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        if ((1114111 < code_point_30X)) {
                          *TT0 = 0;
                          *TT1 = 0;
                          *TT2 = 0;
                          *TT3 = 0;
                          return 1;}
                        else {
                          *TT0 = 1;
                          *TT1 = 0;
                          *TT2 = code_point_30X;
                          *TT3 = 4;
                          return 1;}}}
                    else {
                      *TT0 = 1;
                      *TT1 = 0;
                      *TT2 = code_point_30X;
                      *TT3 = 4;
                      return 1;}}}}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 0;}}}}}}}}
 L7184: {
  q_31X = arg0K0;
  state_32X = arg0K1;
  mask_33X = arg0K2;
  scalar_value_34X = arg0K3;
  if ((q_31X < count_24X)) {
    c_35X = *((unsigned char *) (buffer_23X + q_31X));
    state_36X = *(Sutf_8_state_tableS + ((((state_32X)<<5)) + (((c_35X)>>3))));
    if ((state_36X == 0)) {
      scalar_value_37X = scalar_value_34X + (127 & c_35X);
      if ((scalar_value_37X < 0)) {
        *TT0 = 0;
        *TT1 = 0;
        *TT2 = 0;
        *TT3 = 0;
        return 1;}
      else {
        if ((55295 < scalar_value_37X)) {
          if ((scalar_value_37X < 57344)) {
            *TT0 = 0;
            *TT1 = 0;
            *TT2 = 0;
            *TT3 = 0;
            return 1;}
          else {
            if ((1114111 < scalar_value_37X)) {
              *TT0 = 0;
              *TT1 = 0;
              *TT2 = 0;
              *TT3 = 0;
              return 1;}
            else {
              goto L7199;}}}
        else {
          goto L7199;}}}
    else {
      if ((state_36X == 1)) {
        goto L7210;}
      else {
        if ((state_36X == 2)) {
          goto L7210;}
        else {
          if ((state_36X == 3)) {
            goto L7210;}
          else {
            if ((state_36X == -2)) {
              *TT0 = 0;
              *TT1 = 0;
              *TT2 = 0;
              *TT3 = 0;
              return 1;}
            else {
              if ((state_36X == -1)) {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 1;}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 1;}}}}}}}
  else {
    *TT0 = 1;
    *TT1 = 1;
    *TT2 = 0;
    *TT3 = (1 + q_31X);
    return 1;}}
 L7199: {
  *TT0 = 1;
  *TT1 = 0;
  *TT2 = scalar_value_37X;
  *TT3 = (1 + q_31X);
  return 1;}
 L7210: {
  if ((0 == mask_33X)) {
    arg0K0 = (*(Sutf_8_masksS + state_36X));
    goto L7216;}
  else {
    arg0K0 = mask_33X;
    goto L7216;}}
 L7216: {
  v_38X = arg0K0;
  arg0K0 = (1 + q_31X);
  arg0K1 = state_36X;
  arg0K2 = 63;
  arg0K3 = ((((scalar_value_34X + (c_35X & v_38X)))<<6));
  goto L7184;}
}
static char integerLE(long x_39X, long y_40X)
{
  long v_43X;
  long v_42X;
  long v_41X;
 {  if ((0 == (3 & y_40X))) {
    if ((0 == (3 & x_39X))) {
      if ((y_40X < x_39X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_41X = s48_bignum_test((((char *) (-3 + x_39X))));
      if ((1 == v_41X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_39X))) {
      v_42X = s48_bignum_test((((char *) (-3 + y_40X))));
      if ((1 == v_42X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_43X = s48_bignum_compare((((char *) (-3 + y_40X))), (((char *) (-3 + x_39X))));
      if ((-1 == v_43X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char integerGE(long x_44X, long y_45X)
{
  long v_48X;
  long v_47X;
  long v_46X;
 {  if ((0 == (3 & x_44X))) {
    if ((0 == (3 & y_45X))) {
      if ((x_44X < y_45X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_46X = s48_bignum_test((((char *) (-3 + y_45X))));
      if ((1 == v_46X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_45X))) {
      v_47X = s48_bignum_test((((char *) (-3 + x_44X))));
      if ((1 == v_47X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_48X = s48_bignum_compare((((char *) (-3 + x_44X))), (((char *) (-3 + y_45X))));
      if ((-1 == v_48X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char shared_binding_undefinedP(long binding_49X)
{

 {  return (17 == (255 & (*((long *) ((((char *) (-3 + binding_49X))) + 8)))));}
}
static void enqueue_channelB(long index_50X, long status_51X, long errorP_52X)
{
  char * addr_58X;
  long x_57X;
  char * addr_56X;
  char * addr_55X;
  long val_54X;
  long channel_53X;
 {  channel_53X = *((Svm_channelsS) + index_50X);
  val_54X = ((status_51X)<<2);
  addr_55X = (((char *) (-3 + channel_53X))) + 20;S48_WRITE_BARRIER(channel_53X, addr_55X, val_54X);
  *((long *) addr_55X) = (long) (val_54X);
  addr_56X = (((char *) (-3 + channel_53X))) + 24;S48_WRITE_BARRIER(channel_53X, addr_56X, errorP_52X);
  *((long *) addr_56X) = (long) (errorP_52X);
  if ((1 == (*((long *) ((((char *) (-3 + channel_53X))) + 16))))) {
    if ((channel_53X == (Spending_channels_headS))) {
      return;}
    else {
      if ((channel_53X == (Spending_channels_tailS))) {
        return;}
      else {
        if ((1 == (Spending_channels_headS))) {
          Spending_channels_headS = channel_53X;
          Spending_channels_tailS = channel_53X;
          return;}
        else {
          x_57X = Spending_channels_tailS;
          addr_58X = (((char *) (-3 + x_57X))) + 16;S48_WRITE_BARRIER(x_57X, addr_58X, channel_53X);
          *((long *) addr_58X) = (long) (channel_53X);
          Spending_channels_tailS = channel_53X;
          return;}}}}
  else {
    return;}}
}
static void decode_utf_8B(char * p_59X, long s_60X, long size_61X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_77X;
  long j_76X;
  long bits_75X;
  long shifted_74X;
  long j_73X;
  long bits_72X;
  long shifted_71X;
  long j_70X;
  long bits_69X;
  long count_68X;
  long value_67X;
  char incompleteP_66X;
  char v_65X;
  char encoding_okP_64X;
  long target_index_63X;
  long index_62X;
 {  arg0K0 = 0;
  arg0K1 = 0;
  goto L13905;}
 L13905: {
  index_62X = arg0K0;
  target_index_63X = arg0K1;
  if ((index_62X < size_61X)) {
    encoding_okP_64X = decode_scalar_value(2, (p_59X + index_62X), (size_61X - index_62X), &v_65X, &incompleteP_66X, &value_67X, &count_68X);
    if (encoding_okP_64X) {
      if (incompleteP_66X) {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = 63;
        goto L13978;}
      else {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = value_67X;
        goto L13995;}}
    else {
      arg0K0 = 0;
      arg0K1 = 0;
      arg0K2 = 63;
      goto L13961;}}
  else {
    return;}}
 L13978: {
  bits_69X = arg0K0;
  j_70X = arg0K1;
  shifted_71X = arg0K2;
  if ((j_70X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_70X))) = (unsigned char) ((255 & shifted_71X));
    arg0K0 = (8 + bits_69X);
    arg0K1 = (1 + j_70X);
    arg0K2 = ((long)(((unsigned long)shifted_71X)>>8));
    goto L13978;}
  else {
    return;}}
 L13995: {
  bits_72X = arg0K0;
  j_73X = arg0K1;
  shifted_74X = arg0K2;
  if ((j_73X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_73X))) = (unsigned char) ((255 & shifted_74X));
    arg0K0 = (8 + bits_72X);
    arg0K1 = (1 + j_73X);
    arg0K2 = ((long)(((unsigned long)shifted_74X)>>8));
    goto L13995;}
  else {
    arg0K0 = (index_62X + count_68X);
    arg0K1 = (1 + target_index_63X);
    goto L13905;}}
 L13961: {
  bits_75X = arg0K0;
  j_76X = arg0K1;
  shifted_77X = arg0K2;
  if ((j_76X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_76X))) = (unsigned char) ((255 & shifted_77X));
    arg0K0 = (8 + bits_75X);
    arg0K1 = (1 + j_76X);
    arg0K2 = ((long)(((unsigned long)shifted_77X)>>8));
    goto L13961;}
  else {
    arg0K0 = (1 + index_62X);
    arg0K1 = (1 + target_index_63X);
    goto L13905;}}
}
static void copy_vm_string_to_stringUlatin_1B(long vm_string_78X, long start_79X, long count_80X, char *string_81X)
{
  char arg1K0;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char v_87X;
  long x_86X;
  long scalar_value_85X;
  long j_84X;
  long bits_83X;
  long i_82X;
 {  arg0K0 = 0;
  goto L14138;}
 L14138: {
  i_82X = arg0K0;
  if ((i_82X < count_80X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L14180;}
  else {
    return;}}
 L14180: {
  bits_83X = arg0K0;
  j_84X = arg0K1;
  scalar_value_85X = arg0K2;
  if ((j_84X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_78X))) + ((((i_82X)<<2)) + j_84X)))), bits_83X, x_86X)
    arg0K0 = (8 + bits_83X);
    arg0K1 = (1 + j_84X);
    arg0K2 = (x_86X + scalar_value_85X);
    goto L14180;}
  else {
    if ((255 < scalar_value_85X)) {
      arg1K0 = 63;
      goto L14156;}
    else {
      arg1K0 = (((char) scalar_value_85X));
      goto L14156;}}}
 L14156: {
  v_87X = arg1K0;
  *(string_81X + (i_82X + start_79X)) = v_87X;
  arg0K0 = (1 + i_82X);
  goto L14138;}
}
static long close_channelB(long channel_88X)
{
  long arg0K0;
  char * addr_96X;
  long status_95X;
  long v_94X;
  long v_93X;
  long v_92X;
  long v_91X;
  long x_90X;
  long os_index_89X;
 {  os_index_89X = (((*((long *) ((((char *) (-3 + channel_88X))) + 8))))>>2);
  x_90X = *((long *) ((((char *) (-3 + channel_88X))) + 20));
  if ((5 == x_90X)) {
    v_91X = ps_abort_fd_op(os_index_89X);enqueue_channelB(os_index_89X, v_91X, 1);
    goto L14762;}
  else {
    goto L14762;}}
 L14762: {
  v_92X = *((long *) (((char *) (-3 + channel_88X))));
  if ((4 == v_92X)) {
    goto L14777;}
  else {
    if ((12 == (*((long *) (((char *) (-3 + channel_88X))))))) {
      goto L14777;}
    else {
      v_93X = ps_close_fd(os_index_89X);
      arg0K0 = v_93X;
      goto L14784;}}}
 L14777: {
  v_94X = ps_close_fd(os_index_89X);
  arg0K0 = v_94X;
  goto L14784;}
 L14784: {
  status_95X = arg0K0;
  *((Svm_channelsS) + os_index_89X) = 1;
  addr_96X = ((char *) (-3 + channel_88X));S48_WRITE_BARRIER(channel_88X, addr_96X, 0);
  *((long *) addr_96X) = (long) (0);
  return status_95X;}
}
static long make_blank_return_code(long protocol_97X, long template_98X, long frame_size_99X, long opcode_count_100X, long key_101X)
{
  long code_104X;
  char * addr_103X;
  long length_102X;
 {  length_102X = 15 + opcode_count_100X;
  addr_103X = s48_allocate_small((4 + length_102X));
  *((long *) addr_103X) = (long) ((70 + (((length_102X)<<8))));
  code_104X = 3 + (((long) (addr_103X + 4)));
  *((unsigned char *) (((char *) (-3 + code_104X)))) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 1)) = (unsigned char) (protocol_97X);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 2)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 3)) = (unsigned char) (31);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 4)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 5)) = (unsigned char) (8);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 6)) = (unsigned char) ((255 & (((template_98X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 7)) = (unsigned char) ((255 & template_98X));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 8)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 9)) = (unsigned char) (13);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 10)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 11)) = (unsigned char) ((255 & (((frame_size_99X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 12)) = (unsigned char) ((255 & frame_size_99X));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 13)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 14)) = (unsigned char) (protocol_97X);
  return code_104X;}
}
static long enter_stringAgc_n(char *string_105X, long len_106X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_115X;
  long j_114X;
  long bits_113X;
  long c_112X;
  long i_111X;
  long s_110X;
  long string_109X;
  char * addr_108X;
  long len_107X;
 {  len_107X = ((len_106X)<<2);
  addr_108X = s48_allocate_untracedAgc((4 + len_107X));
  if ((addr_108X == NULL)) {
    arg0K0 = 1;
    goto L16768;}
  else {
    *((long *) addr_108X) = (long) ((66 + (((len_107X)<<8))));
    arg0K0 = (3 + (((long) (addr_108X + 4))));
    goto L16768;}}
 L16768: {
  string_109X = arg0K0;
  if ((1 == string_109X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_109X;
    goto L16759;}
  else {
    arg0K0 = string_109X;
    goto L16759;}}
 L16759: {
  s_110X = arg0K0;
  arg0K0 = 0;
  goto L16791;}
 L16791: {
  i_111X = arg0K0;
  if ((i_111X < len_106X)) {
    c_112X = ((unsigned char) (*(string_105X + i_111X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_112X;
    goto L16802;}
  else {
    return s_110X;}}
 L16802: {
  bits_113X = arg0K0;
  j_114X = arg0K1;
  shifted_115X = arg0K2;
  if ((j_114X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_110X))) + ((((i_111X)<<2)) + j_114X))) = (unsigned char) ((255 & shifted_115X));
    arg0K0 = (8 + bits_113X);
    arg0K1 = (1 + j_114X);
    arg0K2 = ((long)(((unsigned long)shifted_115X)>>8));
    goto L16802;}
  else {
    arg0K0 = (1 + i_111X);
    goto L16791;}}
}
static long add_log_entryAgc(long proposal_index_116X, long i_117X, long stob_118X, long index_119X, long value_120X, char verifyP_121X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char * addr_146X;
  long value_145X;
  long v_144X;
  long value_143X;
  char * addr_142X;
  long i_141X;
  long stob_140X;
  long proposal_139X;
  long new_138X;
  char * addr_137X;
  char * addr_136X;
  long value_135X;
  long vector_134X;
  char * addr_133X;
  char * addr_132X;
  char * addr_131X;
  long log_130X;
  long value_129X;
  long stob_128X;
  long proposal_127X;
  char * addr_126X;
  long len_125X;
  long new_size_124X;
  long log_size_123X;
  long proposal_122X;
 {  proposal_122X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  log_size_123X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + proposal_122X))) + (((proposal_index_116X)<<2)))))))) + -4))))>>8))))>>2);
  if ((i_117X == (-1 + log_size_123X))) {
    Stemp0S = stob_118X;
    Stemp1S = value_120X;
    if ((1 == log_size_123X)) {
      arg0K0 = 17;
      goto L12801;}
    else {
      arg0K0 = (-1 + (((log_size_123X)<<1)));
      goto L12801;}}
  else {
    arg0K0 = proposal_122X;
    arg0K1 = stob_118X;
    arg0K2 = value_120X;
    goto L17026;}}
 L12801: {
  new_size_124X = arg0K0;
  len_125X = ((new_size_124X)<<2);
  addr_126X = s48_allocate_tracedAgc((4 + len_125X));
  if ((addr_126X == NULL)) {
    arg0K0 = 1;
    goto L12847;}
  else {
    *((long *) addr_126X) = (long) ((10 + (((len_125X)<<8))));
    arg0K0 = (3 + (((long) (addr_126X + 4))));
    goto L12847;}}
 L17026: {
  proposal_127X = arg0K0;
  stob_128X = arg0K1;
  value_129X = arg0K2;
  log_130X = *((long *) ((((char *) (-3 + proposal_127X))) + (((proposal_index_116X)<<2))));
  addr_131X = (((char *) (-3 + log_130X))) + (((i_117X)<<2));S48_WRITE_BARRIER(log_130X, addr_131X, stob_128X);
  *((long *) addr_131X) = (long) (stob_128X);
  addr_132X = (((char *) (-3 + log_130X))) + (4 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_132X, index_119X);
  *((long *) addr_132X) = (long) (index_119X);
  addr_133X = (((char *) (-3 + log_130X))) + (8 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_133X, value_129X);
  *((long *) addr_133X) = (long) (value_129X);
  if (verifyP_121X) {
    arg0K0 = value_129X;
    goto L17047;}
  else {
    arg0K0 = 29;
    goto L17047;}}
 L12847: {
  vector_134X = arg0K0;
  if ((1 == vector_134X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_134X;
    goto L12805;}
  else {
    arg0K0 = vector_134X;
    goto L12805;}}
 L17047: {
  value_135X = arg0K0;
  addr_136X = (((char *) (-3 + log_130X))) + (12 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_136X, value_135X);
  *((long *) addr_136X) = (long) (value_135X);
  addr_137X = (((char *) (-3 + log_130X))) + (16 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_137X, 1);
  *((long *) addr_137X) = (long) (1);
  return value_129X;}
 L12805: {
  new_138X = arg0K0;
  proposal_139X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 < log_size_123X)) {
    stob_140X = *((long *) ((((char *) (-3 + proposal_139X))) + 4));
    memmove((void *)(((char *) (-3 + new_138X))), (void *)(((char *) (-3 + stob_140X))),(-4 + (((log_size_123X)<<2))));
    goto L12825;}
  else {
    goto L12825;}}
 L12825: {
  arg0K0 = (4 + log_size_123X);
  goto L12829;}
 L12829: {
  i_141X = arg0K0;
  if ((i_141X == new_size_124X)) {
    addr_142X = (((char *) (-3 + proposal_139X))) + (((proposal_index_116X)<<2));S48_WRITE_BARRIER(proposal_139X, addr_142X, new_138X);
    *((long *) addr_142X) = (long) (new_138X);
    value_143X = Stemp0S;
    Stemp0S = 1;
    v_144X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
    value_145X = Stemp1S;
    Stemp1S = 1;
    arg0K0 = v_144X;
    arg0K1 = value_143X;
    arg0K2 = value_145X;
    goto L17026;}
  else {
    addr_146X = (((char *) (-3 + new_138X))) + (((i_141X)<<2));S48_WRITE_BARRIER(new_138X, addr_146X, 0);
    *((long *) addr_146X) = (long) (0);
    arg0K0 = (1 + i_141X);
    goto L12829;}}
}
static long enter_bignum(char * external_bignum_147X)
{
  long desc_148X;
 {  desc_148X = 3 + (((long) external_bignum_147X));
  if ((3 == (3 & desc_148X))) {
    if ((19 == (31 & ((((*((long *) ((((char *) (-3 + desc_148X))) + -4))))>>2))))) {
      goto L17777;}
    else {
      goto L17791;}}
  else {
    goto L17791;}}
 L17777: {
  if ((3 == (3 & desc_148X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + desc_148X))) + -4)))))) {
      *((long *) ((((char *) (-3 + desc_148X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + desc_148X))) + -4)))));
      return desc_148X;}
    else {
      return desc_148X;}}
  else {
    return desc_148X;}}
 L17791: {
  ps_error("not a bignum", 1, desc_148X);
  goto L17777;}
}
static char integerE(long x_149X, long y_150X)
{

 {  if ((0 == (3 & (x_149X | y_150X)))) {
    return (x_149X == y_150X);}
  else {
    if ((3 == (3 & x_149X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_149X))) + -4))))>>2))))) {
        if ((3 == (3 & y_150X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_150X))) + -4))))>>2))))) {
            return s48_bignum_equal_p((((char *) (-3 + x_149X))), (((char *) (-3 + y_150X))));}
          else {
            return 0;}}
        else {
          return 0;}}
      else {
        return 0;}}
    else {
      return 0;}}}
}
static long make_channel(long a_151X, long b_152X, long c_153X, long d_154X, long e_155X, long f_156X, long g_157X, long key_158X)
{
  long x_160X;
  char * addr_159X;
 {  addr_159X = s48_allocate_small(32);
  *((long *) addr_159X) = (long) (7194);
  x_160X = 3 + (((long) (addr_159X + 4)));
  *((long *) (((char *) (-3 + x_160X)))) = (long) (a_151X);
  *((long *) ((((char *) (-3 + x_160X))) + 4)) = (long) (b_152X);
  *((long *) ((((char *) (-3 + x_160X))) + 8)) = (long) (c_153X);
  *((long *) ((((char *) (-3 + x_160X))) + 12)) = (long) (d_154X);
  *((long *) ((((char *) (-3 + x_160X))) + 16)) = (long) (e_155X);
  *((long *) ((((char *) (-3 + x_160X))) + 20)) = (long) (f_156X);
  *((long *) ((((char *) (-3 + x_160X))) + 24)) = (long) (g_157X);
  return x_160X;}
}
static long write_vm_string(long vm_string_161X, FILE * out_162X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_169X;
  long scalar_value_168X;
  long j_167X;
  long bits_166X;
  long i_165X;
  long size_164X;
  long v_163X;
 {  v_163X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_161X))) + -4))))>>8)) / 4;
  arg0K0 = v_163X;
  arg0K1 = 0;
  goto L20013;}
 L20013: {
  size_164X = arg0K0;
  i_165X = arg0K1;
  if ((i_165X < size_164X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L20046;}
  else {
    return 0;}}
 L20046: {
  bits_166X = arg0K0;
  j_167X = arg0K1;
  scalar_value_168X = arg0K2;
  if ((j_167X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_161X))) + ((((i_165X)<<2)) + j_167X)))), bits_166X, x_169X)
    arg0K0 = (8 + bits_166X);
    arg0K1 = (1 + j_167X);
    arg0K2 = (x_169X + scalar_value_168X);
    goto L20046;}
  else {
    { long ignoreXX;
    PS_WRITE_CHAR((((char) scalar_value_168X)), out_162X, ignoreXX) }
    arg0K0 = size_164X;
    arg0K1 = (1 + i_165X);
    goto L20013;}}
}
static long Haction4930(long s_170X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_177X;
  long scalar_value_176X;
  long j_175X;
  long bits_174X;
  long h_173X;
  long i_172X;
  long n_171X;
 {  n_171X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_170X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L20144;}
 L20144: {
  i_172X = arg0K0;
  h_173X = arg0K1;
  if ((i_172X < n_171X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L20173;}
  else {
    return h_173X;}}
 L20173: {
  bits_174X = arg0K0;
  j_175X = arg0K1;
  scalar_value_176X = arg0K2;
  if ((j_175X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + s_170X))) + ((((i_172X)<<2)) + j_175X)))), bits_174X, x_177X)
    arg0K0 = (8 + bits_174X);
    arg0K1 = (1 + j_175X);
    arg0K2 = (x_177X + scalar_value_176X);
    goto L20173;}
  else {
    arg0K0 = (1 + i_172X);
    arg0K1 = (h_173X + scalar_value_176X);
    goto L20144;}}
}
static long current_code_vector(void)
{
  long arg0K0;
  long x_190X;
  long v_189X;
  long x_188X;
  long header_187X;
  char * start_186X;
  char * code_pointer_185X;
  long code_184X;
  char * pointer_183X;
  char * code_pointer_182X;
  long header_181X;
  char * start_180X;
  long code_179X;
  char * code_pointer_178X;
 {  code_pointer_178X = Scode_pointerS;
  code_179X = Slast_code_calledS;
  start_180X = ((char *) (-3 + code_179X));
  if ((code_pointer_178X < start_180X)) {
    goto L20722;}
  else {
    header_181X = *((long *) ((((char *) (-3 + code_179X))) + -4));
    if ((3 == (3 & header_181X))) {
      arg0K0 = header_181X;
      goto L20743;}
    else {
      arg0K0 = code_179X;
      goto L20743;}}}
 L20722: {
  code_pointer_182X = Slast_code_pointer_resumedS;
  pointer_183X = code_pointer_182X + -5;
  code_184X = 3 + (((long) (code_pointer_182X + (0 - (((((*((unsigned char *) pointer_183X)))<<8)) + (*((unsigned char *) (pointer_183X + 1))))))));
  code_pointer_185X = Scode_pointerS;
  start_186X = ((char *) (-3 + code_184X));
  if ((code_pointer_185X < start_186X)) {
    goto L20730;}
  else {
    header_187X = *((long *) ((((char *) (-3 + code_184X))) + -4));
    if ((3 == (3 & header_187X))) {
      arg0K0 = header_187X;
      goto L20764;}
    else {
      arg0K0 = code_184X;
      goto L20764;}}}
 L20743: {
  x_188X = arg0K0;
  if ((code_pointer_178X < (start_180X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_188X))) + -4))))>>8))))) {
    return (Slast_code_calledS);}
  else {
    goto L20722;}}
 L20730: {
  ps_error("VM error: unable to locate current code vector", 3, (((long) (Scode_pointerS))), (Slast_code_calledS), (((long) (Slast_code_pointer_resumedS))));
  return v_189X;}
 L20764: {
  x_190X = arg0K0;
  if ((code_pointer_185X < (start_186X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_190X))) + -4))))>>8))))) {
    return code_184X;}
  else {
    goto L20730;}}
}
static void channel_close_error(long status_191X, long index_192X, long id_193X)
{

 {  ps_write_string("Error: ", (stderr));
  ps_write_string((ps_error_string(status_191X)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  ps_write_string(" while closing port ", (stderr));
  if ((3 == (3 & id_193X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + id_193X))) + -4))))>>2))))) {
      ps_write_string((((char *)(((char *) (-3 + id_193X))))), (stderr));
      goto L21158;}
    else {
      goto L21152;}}
  else {
    goto L21152;}}
 L21158: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  return;}
 L21152: {
  ps_write_integer((((index_192X)>>2)), (stderr));
  goto L21158;}
}
static long integer_bit_count(long x_194X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_201X;
  char * v_200X;
  char * v_199X;
  long value_198X;
  long v_197X;
  long extra_196X;
  long length_195X;
 {  if ((0 == (3 & x_194X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L23210;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_194X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L23210;}}
 L23210: {
  length_195X = arg0K0;
  extra_196X = arg0K1;
  if ((length_195X < 1)) {
    arg0K0 = 1;
    goto L23212;}
  else {
    arg0K0 = length_195X;
    goto L23212;}}
 L23212: {
  v_197X = arg0K0;
  Stemp0S = x_194X;s48_make_availableAgc((((((1 + ((((11 + (((v_197X)<<2))))>>2))) + extra_196X))<<2)));
  value_198X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_198X))) {
    v_199X = (char *) s48_long_to_bignum((((value_198X)>>2)));
    arg2K0 = v_199X;
    goto L23202;}
  else {
    arg2K0 = (((char *) (-3 + value_198X)));
    goto L23202;}}
 L23202: {
  v_200X = arg2K0;
  n_201X = s48_bignum_bit_count(v_200X);
  return (((n_201X)<<2));}
}
static long integer_add(long x_202X, long y_203X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_217X;
  char v_216X;
  char * external_bignum_215X;
  char * y_214X;
  char * v_213X;
  long value_212X;
  char * x_211X;
  char * v_210X;
  long value_209X;
  long v_208X;
  long extra1_207X;
  long length1_206X;
  long extra0_205X;
  long length0_204X;
 {  if ((0 == (3 & x_202X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20681;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_202X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20681;}}
 L20681: {
  length0_204X = arg0K0;
  extra0_205X = arg0K1;
  if ((0 == (3 & y_203X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20689;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_203X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20689;}}
 L20689: {
  length1_206X = arg0K0;
  extra1_207X = arg0K1;
  if ((length0_204X < length1_206X)) {
    arg0K0 = length1_206X;
    goto L20711;}
  else {
    arg0K0 = length0_204X;
    goto L20711;}}
 L20711: {
  v_208X = arg0K0;
  Stemp0S = x_202X;
  Stemp1S = y_203X;s48_make_availableAgc(((((((1 + ((((11 + (((v_208X)<<2))))>>2))) + extra0_205X) + extra1_207X))<<2)));
  value_209X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_209X))) {
    v_210X = (char *) s48_long_to_bignum((((value_209X)>>2)));
    arg2K0 = v_210X;
    goto L23327;}
  else {
    arg2K0 = (((char *) (-3 + value_209X)));
    goto L23327;}}
 L23327: {
  x_211X = arg2K0;
  value_212X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_212X))) {
    v_213X = (char *) s48_long_to_bignum((((value_212X)>>2)));
    arg2K0 = v_213X;
    goto L23331;}
  else {
    arg2K0 = (((char *) (-3 + value_212X)));
    goto L23331;}}
 L23331: {
  y_214X = arg2K0;
  external_bignum_215X = (char *)s48_bignum_add(x_211X, y_214X);
  v_216X = s48_bignum_fits_in_word_p(external_bignum_215X, 30, 1);
  if (v_216X) {
    n_217X = s48_bignum_to_long(external_bignum_215X);
    return (((n_217X)<<2));}
  else {
    return enter_bignum(external_bignum_215X);}}
}
static long integer_subtract(long x_218X, long y_219X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_233X;
  char v_232X;
  char * external_bignum_231X;
  char * y_230X;
  char * v_229X;
  long value_228X;
  char * x_227X;
  char * v_226X;
  long value_225X;
  long v_224X;
  long extra1_223X;
  long length1_222X;
  long extra0_221X;
  long length0_220X;
 {  if ((0 == (3 & x_218X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20638;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_218X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20638;}}
 L20638: {
  length0_220X = arg0K0;
  extra0_221X = arg0K1;
  if ((0 == (3 & y_219X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20646;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_219X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20646;}}
 L20646: {
  length1_222X = arg0K0;
  extra1_223X = arg0K1;
  if ((length0_220X < length1_222X)) {
    arg0K0 = length1_222X;
    goto L20668;}
  else {
    arg0K0 = length0_220X;
    goto L20668;}}
 L20668: {
  v_224X = arg0K0;
  Stemp0S = x_218X;
  Stemp1S = y_219X;s48_make_availableAgc(((((((1 + ((((11 + (((v_224X)<<2))))>>2))) + extra0_221X) + extra1_223X))<<2)));
  value_225X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_225X))) {
    v_226X = (char *) s48_long_to_bignum((((value_225X)>>2)));
    arg2K0 = v_226X;
    goto L23401;}
  else {
    arg2K0 = (((char *) (-3 + value_225X)));
    goto L23401;}}
 L23401: {
  x_227X = arg2K0;
  value_228X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_228X))) {
    v_229X = (char *) s48_long_to_bignum((((value_228X)>>2)));
    arg2K0 = v_229X;
    goto L23405;}
  else {
    arg2K0 = (((char *) (-3 + value_228X)));
    goto L23405;}}
 L23405: {
  y_230X = arg2K0;
  external_bignum_231X = (char *)s48_bignum_subtract(x_227X, y_230X);
  v_232X = s48_bignum_fits_in_word_p(external_bignum_231X, 30, 1);
  if (v_232X) {
    n_233X = s48_bignum_to_long(external_bignum_231X);
    return (((n_233X)<<2));}
  else {
    return enter_bignum(external_bignum_231X);}}
}
static long integer_multiply(long x_234X, long y_235X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_248X;
  char v_247X;
  char * external_bignum_246X;
  char * y_245X;
  char * v_244X;
  long value_243X;
  char * x_242X;
  char * v_241X;
  long value_240X;
  long extra1_239X;
  long length1_238X;
  long extra0_237X;
  long length0_236X;
 {  if ((0 == (3 & x_234X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20601;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_234X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20601;}}
 L20601: {
  length0_236X = arg0K0;
  extra0_237X = arg0K1;
  if ((0 == (3 & y_235X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20609;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_235X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20609;}}
 L20609: {
  length1_238X = arg0K0;
  extra1_239X = arg0K1;
  Stemp0S = x_234X;
  Stemp1S = y_235X;s48_make_availableAgc(((((((1 + ((((7 + ((((length0_236X + length1_238X))<<2))))>>2))) + extra0_237X) + extra1_239X))<<2)));
  value_240X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_240X))) {
    v_241X = (char *) s48_long_to_bignum((((value_240X)>>2)));
    arg2K0 = v_241X;
    goto L23475;}
  else {
    arg2K0 = (((char *) (-3 + value_240X)));
    goto L23475;}}
 L23475: {
  x_242X = arg2K0;
  value_243X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_243X))) {
    v_244X = (char *) s48_long_to_bignum((((value_243X)>>2)));
    arg2K0 = v_244X;
    goto L23479;}
  else {
    arg2K0 = (((char *) (-3 + value_243X)));
    goto L23479;}}
 L23479: {
  y_245X = arg2K0;
  external_bignum_246X = (char *)s48_bignum_multiply(x_242X, y_245X);
  v_247X = s48_bignum_fits_in_word_p(external_bignum_246X, 30, 1);
  if (v_247X) {
    n_248X = s48_bignum_to_long(external_bignum_246X);
    return (((n_248X)<<2));}
  else {
    return enter_bignum(external_bignum_246X);}}
}
static long integer_bitwise_not(long x_249X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_258X;
  char v_257X;
  char * external_bignum_256X;
  char * v_255X;
  char * v_254X;
  long value_253X;
  long v_252X;
  long extra_251X;
  long length_250X;
 {  if ((0 == (3 & x_249X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L23848;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_249X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L23848;}}
 L23848: {
  length_250X = arg0K0;
  extra_251X = arg0K1;
  if ((length_250X < 1)) {
    arg0K0 = 1;
    goto L23850;}
  else {
    arg0K0 = length_250X;
    goto L23850;}}
 L23850: {
  v_252X = arg0K0;
  Stemp0S = x_249X;s48_make_availableAgc((((((1 + ((((11 + (((v_252X)<<2))))>>2))) + extra_251X))<<2)));
  value_253X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_253X))) {
    v_254X = (char *) s48_long_to_bignum((((value_253X)>>2)));
    arg2K0 = v_254X;
    goto L23840;}
  else {
    arg2K0 = (((char *) (-3 + value_253X)));
    goto L23840;}}
 L23840: {
  v_255X = arg2K0;
  external_bignum_256X = (char *) s48_bignum_bitwise_not(v_255X);
  v_257X = s48_bignum_fits_in_word_p(external_bignum_256X, 30, 1);
  if (v_257X) {
    n_258X = s48_bignum_to_long(external_bignum_256X);
    return (((n_258X)<<2));}
  else {
    return enter_bignum(external_bignum_256X);}}
}
static long integer_bitwise_and(long x_259X, long y_260X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_274X;
  char v_273X;
  char * external_bignum_272X;
  char * y_271X;
  char * v_270X;
  long value_269X;
  char * x_268X;
  char * v_267X;
  long value_266X;
  long v_265X;
  long extra1_264X;
  long length1_263X;
  long extra0_262X;
  long length0_261X;
 {  if ((0 == (3 & x_259X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20420;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_259X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20420;}}
 L20420: {
  length0_261X = arg0K0;
  extra0_262X = arg0K1;
  if ((0 == (3 & y_260X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20428;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_260X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20428;}}
 L20428: {
  length1_263X = arg0K0;
  extra1_264X = arg0K1;
  if ((length0_261X < length1_263X)) {
    arg0K0 = length1_263X;
    goto L20450;}
  else {
    arg0K0 = length0_261X;
    goto L20450;}}
 L20450: {
  v_265X = arg0K0;
  Stemp0S = x_259X;
  Stemp1S = y_260X;s48_make_availableAgc(((((((1 + ((((11 + (((v_265X)<<2))))>>2))) + extra0_262X) + extra1_264X))<<2)));
  value_266X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_266X))) {
    v_267X = (char *) s48_long_to_bignum((((value_266X)>>2)));
    arg2K0 = v_267X;
    goto L23907;}
  else {
    arg2K0 = (((char *) (-3 + value_266X)));
    goto L23907;}}
 L23907: {
  x_268X = arg2K0;
  value_269X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_269X))) {
    v_270X = (char *) s48_long_to_bignum((((value_269X)>>2)));
    arg2K0 = v_270X;
    goto L23911;}
  else {
    arg2K0 = (((char *) (-3 + value_269X)));
    goto L23911;}}
 L23911: {
  y_271X = arg2K0;
  external_bignum_272X = (char *) s48_bignum_bitwise_and(x_268X, y_271X);
  v_273X = s48_bignum_fits_in_word_p(external_bignum_272X, 30, 1);
  if (v_273X) {
    n_274X = s48_bignum_to_long(external_bignum_272X);
    return (((n_274X)<<2));}
  else {
    return enter_bignum(external_bignum_272X);}}
}
static long integer_bitwise_ior(long x_275X, long y_276X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_290X;
  char v_289X;
  char * external_bignum_288X;
  char * y_287X;
  char * v_286X;
  long value_285X;
  char * x_284X;
  char * v_283X;
  long value_282X;
  long v_281X;
  long extra1_280X;
  long length1_279X;
  long extra0_278X;
  long length0_277X;
 {  if ((0 == (3 & x_275X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20377;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_275X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20377;}}
 L20377: {
  length0_277X = arg0K0;
  extra0_278X = arg0K1;
  if ((0 == (3 & y_276X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20385;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_276X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20385;}}
 L20385: {
  length1_279X = arg0K0;
  extra1_280X = arg0K1;
  if ((length0_277X < length1_279X)) {
    arg0K0 = length1_279X;
    goto L20407;}
  else {
    arg0K0 = length0_277X;
    goto L20407;}}
 L20407: {
  v_281X = arg0K0;
  Stemp0S = x_275X;
  Stemp1S = y_276X;s48_make_availableAgc(((((((1 + ((((11 + (((v_281X)<<2))))>>2))) + extra0_278X) + extra1_280X))<<2)));
  value_282X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_282X))) {
    v_283X = (char *) s48_long_to_bignum((((value_282X)>>2)));
    arg2K0 = v_283X;
    goto L23981;}
  else {
    arg2K0 = (((char *) (-3 + value_282X)));
    goto L23981;}}
 L23981: {
  x_284X = arg2K0;
  value_285X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_285X))) {
    v_286X = (char *) s48_long_to_bignum((((value_285X)>>2)));
    arg2K0 = v_286X;
    goto L23985;}
  else {
    arg2K0 = (((char *) (-3 + value_285X)));
    goto L23985;}}
 L23985: {
  y_287X = arg2K0;
  external_bignum_288X = (char *) s48_bignum_bitwise_ior(x_284X, y_287X);
  v_289X = s48_bignum_fits_in_word_p(external_bignum_288X, 30, 1);
  if (v_289X) {
    n_290X = s48_bignum_to_long(external_bignum_288X);
    return (((n_290X)<<2));}
  else {
    return enter_bignum(external_bignum_288X);}}
}
static long integer_bitwise_xor(long x_291X, long y_292X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_306X;
  char v_305X;
  char * external_bignum_304X;
  char * y_303X;
  char * v_302X;
  long value_301X;
  char * x_300X;
  char * v_299X;
  long value_298X;
  long v_297X;
  long extra1_296X;
  long length1_295X;
  long extra0_294X;
  long length0_293X;
 {  if ((0 == (3 & x_291X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20334;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_291X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20334;}}
 L20334: {
  length0_293X = arg0K0;
  extra0_294X = arg0K1;
  if ((0 == (3 & y_292X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20342;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_292X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20342;}}
 L20342: {
  length1_295X = arg0K0;
  extra1_296X = arg0K1;
  if ((length0_293X < length1_295X)) {
    arg0K0 = length1_295X;
    goto L20364;}
  else {
    arg0K0 = length0_293X;
    goto L20364;}}
 L20364: {
  v_297X = arg0K0;
  Stemp0S = x_291X;
  Stemp1S = y_292X;s48_make_availableAgc(((((((1 + ((((11 + (((v_297X)<<2))))>>2))) + extra0_294X) + extra1_296X))<<2)));
  value_298X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_298X))) {
    v_299X = (char *) s48_long_to_bignum((((value_298X)>>2)));
    arg2K0 = v_299X;
    goto L24055;}
  else {
    arg2K0 = (((char *) (-3 + value_298X)));
    goto L24055;}}
 L24055: {
  x_300X = arg2K0;
  value_301X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_301X))) {
    v_302X = (char *) s48_long_to_bignum((((value_301X)>>2)));
    arg2K0 = v_302X;
    goto L24059;}
  else {
    arg2K0 = (((char *) (-3 + value_301X)));
    goto L24059;}}
 L24059: {
  y_303X = arg2K0;
  external_bignum_304X = (char *) s48_bignum_bitwise_xor(x_300X, y_303X);
  v_305X = s48_bignum_fits_in_word_p(external_bignum_304X, 30, 1);
  if (v_305X) {
    n_306X = s48_bignum_to_long(external_bignum_304X);
    return (((n_306X)<<2));}
  else {
    return enter_bignum(external_bignum_304X);}}
}
static long Hinteger_op8301(long x_307X, long y_308X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_320X;
  char v_319X;
  char * external_bignum_318X;
  char * y_317X;
  char * v_316X;
  long value_315X;
  char * x_314X;
  char * v_313X;
  long value_312X;
  long extra1_311X;
  long extra0_310X;
  long length0_309X;
 {  if ((0 == (3 & x_307X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L24145;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_307X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L24145;}}
 L24145: {
  length0_309X = arg0K0;
  extra0_310X = arg0K1;
  if ((0 == (3 & y_308X))) {
    arg0K0 = 3;
    goto L24147;}
  else {
    arg0K0 = 0;
    goto L24147;}}
 L24147: {
  extra1_311X = arg0K0;
  Stemp0S = x_307X;
  Stemp1S = y_308X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_309X)<<2))))>>1)))) + extra0_310X) + extra1_311X))<<2)));
  value_312X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_312X))) {
    v_313X = (char *) s48_long_to_bignum((((value_312X)>>2)));
    arg2K0 = v_313X;
    goto L24129;}
  else {
    arg2K0 = (((char *) (-3 + value_312X)));
    goto L24129;}}
 L24129: {
  x_314X = arg2K0;
  value_315X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_315X))) {
    v_316X = (char *) s48_long_to_bignum((((value_315X)>>2)));
    arg2K0 = v_316X;
    goto L24133;}
  else {
    arg2K0 = (((char *) (-3 + value_315X)));
    goto L24133;}}
 L24133: {
  y_317X = arg2K0;
  external_bignum_318X = (char *)s48_bignum_quotient(x_314X, y_317X);
  v_319X = s48_bignum_fits_in_word_p(external_bignum_318X, 30, 1);
  if (v_319X) {
    n_320X = s48_bignum_to_long(external_bignum_318X);
    return (((n_320X)<<2));}
  else {
    return enter_bignum(external_bignum_318X);}}
}
static long Hinteger_op8232(long x_321X, long y_322X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_334X;
  char v_333X;
  char * external_bignum_332X;
  char * y_331X;
  char * v_330X;
  long value_329X;
  char * x_328X;
  char * v_327X;
  long value_326X;
  long extra1_325X;
  long extra0_324X;
  long length0_323X;
 {  if ((0 == (3 & x_321X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L24236;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_321X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L24236;}}
 L24236: {
  length0_323X = arg0K0;
  extra0_324X = arg0K1;
  if ((0 == (3 & y_322X))) {
    arg0K0 = 3;
    goto L24238;}
  else {
    arg0K0 = 0;
    goto L24238;}}
 L24238: {
  extra1_325X = arg0K0;
  Stemp0S = x_321X;
  Stemp1S = y_322X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_323X)<<2))))>>1)))) + extra0_324X) + extra1_325X))<<2)));
  value_326X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_326X))) {
    v_327X = (char *) s48_long_to_bignum((((value_326X)>>2)));
    arg2K0 = v_327X;
    goto L24220;}
  else {
    arg2K0 = (((char *) (-3 + value_326X)));
    goto L24220;}}
 L24220: {
  x_328X = arg2K0;
  value_329X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_329X))) {
    v_330X = (char *) s48_long_to_bignum((((value_329X)>>2)));
    arg2K0 = v_330X;
    goto L24224;}
  else {
    arg2K0 = (((char *) (-3 + value_329X)));
    goto L24224;}}
 L24224: {
  y_331X = arg2K0;
  external_bignum_332X = (char *)s48_bignum_remainder(x_328X, y_331X);
  v_333X = s48_bignum_fits_in_word_p(external_bignum_332X, 30, 1);
  if (v_333X) {
    n_334X = s48_bignum_to_long(external_bignum_332X);
    return (((n_334X)<<2));}
  else {
    return enter_bignum(external_bignum_332X);}}
}
static char for_each_imported_binding(char (*proc_335X)(long))
{
  long arg0K0;
  long link_342X;
  char x_341X;
  long entry_340X;
  long link_339X;
  char temp_338X;
  long i_337X;
  long table_336X;
 {  table_336X = Simported_bindingsS;
  arg0K0 = 0;
  goto L21317;}
 L21317: {
  i_337X = arg0K0;
  temp_338X = 1024 == i_337X;
  if (temp_338X) {
    return temp_338X;}
  else {
    link_339X = *((long *) ((((char *) (-3 + table_336X))) + (((i_337X)<<2))));
    if ((0 == (3 & link_339X))) {
      arg0K0 = (3 + (-4 & link_339X));
      goto L21289;}
    else {
      arg0K0 = link_339X;
      goto L21289;}}}
 L21289: {
  entry_340X = arg0K0;
  if ((1 == entry_340X)) {
    arg0K0 = (1 + i_337X);
    goto L21317;}
  else {
    x_341X = (*proc_335X)(entry_340X);
    if (x_341X) {
      link_342X = *((long *) ((((char *) (-3 + entry_340X))) + 12));
      if ((0 == (3 & link_342X))) {
        arg0K0 = (3 + (-4 & link_342X));
        goto L21289;}
      else {
        arg0K0 = link_342X;
        goto L21289;}}
    else {
      return 1;}}}
}
static long really_preserve_continuation(long key_343X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  char * next_356X;
  long pc_355X;
  char * pointer_354X;
  char * pointer_353X;
  long new_352X;
  char * addr_351X;
  long len_350X;
  long size_349X;
  long size_348X;
  char * pointer_347X;
  long previous_346X;
  char * cont_345X;
  long temp_344X;
 {  if (((ScontS) == (Sbottom_of_stackS))) {
    goto L25596;}
  else {
    temp_344X = Sheap_continuationS;
    arg2K0 = (ScontS);
    arg0K1 = 1;
    goto L25566;}}
 L25596: {
  return (Sheap_continuationS);}
 L25566: {
  cont_345X = arg2K0;
  previous_346X = arg0K1;
  if ((cont_345X == (Sbottom_of_stackS))) {
    *((long *) ((((char *) (-3 + previous_346X))) + 8)) = (long) (temp_344X);
    ScontS = (Sbottom_of_stackS);
    goto L25596;}
  else {
    pointer_347X = (((char *) (*((long *) cont_345X)))) + -2;
    size_348X = ((((*((unsigned char *) pointer_347X)))<<8)) + (*((unsigned char *) (pointer_347X + 1)));
    if ((65535 == size_348X)) {
      arg0K0 = ((((*((long *) (cont_345X + 4))))>>2));
      goto L22111;}
    else {
      arg0K0 = size_348X;
      goto L22111;}}}
 L22111: {
  size_349X = arg0K0;
  len_350X = 12 + (((size_349X)<<2));
  addr_351X = s48_allocate_small((4 + len_350X));
  *((long *) addr_351X) = (long) ((42 + (((len_350X)<<8))));
  new_352X = 3 + (((long) (addr_351X + 4)));
  pointer_353X = ((char *) (*((long *) cont_345X)));
  pointer_354X = pointer_353X + -5;
  pc_355X = ((((*((unsigned char *) pointer_354X)))<<8)) + (*((unsigned char *) (pointer_354X + 1)));
  memmove((void *)((((char *) (-3 + new_352X))) + 12), (void *)(cont_345X + 4),(((size_349X)<<2)));
  *((long *) (((char *) (-3 + new_352X)))) = (long) ((((pc_355X)<<2)));
  *((long *) ((((char *) (-3 + new_352X))) + 4)) = (long) ((3 + (((long) (pointer_353X + (0 - pc_355X))))));
  next_356X = cont_345X + (4 + (((size_349X)<<2)));
  if ((3 == (3 & previous_346X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + previous_346X))) + -4))))>>2))))) {
      *((long *) ((((char *) (-3 + previous_346X))) + 8)) = (long) (new_352X);
      arg2K0 = next_356X;
      arg0K1 = new_352X;
      goto L25566;}
    else {
      goto L25584;}}
  else {
    goto L25584;}}
 L25584: {
  Sheap_continuationS = new_352X;
  arg2K0 = next_356X;
  arg0K1 = new_352X;
  goto L25566;}
}
static void push_exception_setupB(long exception_357X, long instruction_size_358X)
{
  long n_370X;
  long data_369X;
  long n_368X;
  long code_367X;
  long pc_366X;
  char * code_pointer_365X;
  long x_364X;
  long data_363X;
  long n_362X;
  long pc_361X;
  char * code_pointer_360X;
  long code_359X;
 {  if ((0 == (Snative_exception_contS))) {
    code_359X = current_code_vector();
    code_pointer_360X = (((char *) (-3 + (Sexception_return_codeS)))) + 13;
    pc_361X = ((((Scode_pointerS) - (((char *) (-3 + code_359X)))))<<2);
    SstackS = ((SstackS) + -20);
    n_362X = ((((ScontS) - (SstackS)))>>2);
    data_363X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_363X)))) = (long) ((((n_362X)<<2)));
    *((long *) ((((char *) (-3 + data_363X))) + 4)) = (long) (pc_361X);
    *((long *) ((((char *) (-3 + data_363X))) + 8)) = (long) (code_359X);
    *((long *) ((((char *) (-3 + data_363X))) + 12)) = (long) ((((exception_357X)<<2)));
    *((long *) ((((char *) (-3 + data_363X))) + 16)) = (long) ((((instruction_size_358X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_360X)));
    ScontS = (SstackS);
    goto L25925;}
  else {
    x_364X = Snative_exception_contS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_364X);
    ScontS = (SstackS);
    ps_write_string("handling exception for nc ", (stderr));
    ps_write_integer((Snative_exception_contS), (stderr));
    code_pointer_365X = (((char *) (-3 + (Snative_exception_return_codeS)))) + 13;
    pc_366X = (((*((unsigned char *) (Scode_pointerS))))<<2);
    code_367X = Snative_exception_contS;
    SstackS = ((SstackS) + -20);
    n_368X = ((((ScontS) - (SstackS)))>>2);
    data_369X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_369X)))) = (long) ((((n_368X)<<2)));
    *((long *) ((((char *) (-3 + data_369X))) + 4)) = (long) (pc_366X);
    *((long *) ((((char *) (-3 + data_369X))) + 8)) = (long) (code_367X);
    *((long *) ((((char *) (-3 + data_369X))) + 12)) = (long) ((((exception_357X)<<2)));
    *((long *) ((((char *) (-3 + data_369X))) + 16)) = (long) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_365X)));
    ScontS = (SstackS);
    Snative_exception_contS = 0;
    goto L25925;}}
 L25925: {
  n_370X = *((unsigned char *) (Scode_pointerS));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_370X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((exception_357X)<<2)));
  return;}
}
static long Hlookup2943(long table_371X, long string_372X, long key_373X)
{
  long arg0K0;
  char * addr_386X;
  long value_385X;
  long link_384X;
  long x_383X;
  char * addr_382X;
  long next_381X;
  long len_380X;
  long s2_379X;
  long foo_378X;
  long bucket_377X;
  long link_376X;
  long index_375X;
  long v_374X;
 {  v_374X = Haction4930(string_372X);
  index_375X = 1023 & v_374X;
  link_376X = *((long *) ((((char *) (-3 + table_371X))) + (((index_375X)<<2))));
  if ((0 == (3 & link_376X))) {
    arg0K0 = (3 + (-4 & link_376X));
    goto L26717;}
  else {
    arg0K0 = link_376X;
    goto L26717;}}
 L26717: {
  bucket_377X = arg0K0;
  arg0K0 = bucket_377X;
  goto L26723;}
 L26723: {
  foo_378X = arg0K0;
  if ((1 == foo_378X)) {
    if ((3 == (3 & bucket_377X))) {
      arg0K0 = (-4 & bucket_377X);
      goto L26728;}
    else {
      arg0K0 = bucket_377X;
      goto L26728;}}
  else {
    s2_379X = *((long *) (((char *) (-3 + foo_378X))));
    len_380X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_372X))) + -4))))>>8);
    if ((len_380X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_379X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_379X))), (void *)(((char *) (-3 + string_372X))),len_380X)))) {
        return foo_378X;}
      else {
        goto L26743;}}
    else {
      goto L26743;}}}
 L26728: {
  next_381X = arg0K0;
  addr_382X = s48_allocate_small(20);
  *((long *) addr_382X) = (long) (4154);
  x_383X = 3 + (((long) (addr_382X + 4)));
  *((long *) (((char *) (-3 + x_383X)))) = (long) (string_372X);
  *((long *) ((((char *) (-3 + x_383X))) + 4)) = (long) (1);
  *((long *) ((((char *) (-3 + x_383X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_383X))) + 12)) = (long) (next_381X);
  if ((3 == (3 & x_383X))) {
    arg0K0 = (-4 & x_383X);
    goto L26734;}
  else {
    arg0K0 = x_383X;
    goto L26734;}}
 L26743: {
  link_384X = *((long *) ((((char *) (-3 + foo_378X))) + 12));
  if ((0 == (3 & link_384X))) {
    arg0K0 = (3 + (-4 & link_384X));
    goto L26723;}
  else {
    arg0K0 = link_384X;
    goto L26723;}}
 L26734: {
  value_385X = arg0K0;
  addr_386X = (((char *) (-3 + table_371X))) + (((index_375X)<<2));S48_WRITE_BARRIER(table_371X, addr_386X, value_385X);
  *((long *) addr_386X) = (long) (value_385X);
  return x_383X;}
}
static long Hlookup2924(long table_387X, long string_388X, long key_389X)
{
  long arg0K0;
  char * addr_402X;
  long value_401X;
  long link_400X;
  long x_399X;
  char * addr_398X;
  long next_397X;
  long len_396X;
  long s2_395X;
  long foo_394X;
  long bucket_393X;
  long link_392X;
  long index_391X;
  long v_390X;
 {  v_390X = Haction4930(string_388X);
  index_391X = 1023 & v_390X;
  link_392X = *((long *) ((((char *) (-3 + table_387X))) + (((index_391X)<<2))));
  if ((0 == (3 & link_392X))) {
    arg0K0 = (3 + (-4 & link_392X));
    goto L26860;}
  else {
    arg0K0 = link_392X;
    goto L26860;}}
 L26860: {
  bucket_393X = arg0K0;
  arg0K0 = bucket_393X;
  goto L26866;}
 L26866: {
  foo_394X = arg0K0;
  if ((1 == foo_394X)) {
    if ((3 == (3 & bucket_393X))) {
      arg0K0 = (-4 & bucket_393X);
      goto L26871;}
    else {
      arg0K0 = bucket_393X;
      goto L26871;}}
  else {
    s2_395X = *((long *) (((char *) (-3 + foo_394X))));
    len_396X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_388X))) + -4))))>>8);
    if ((len_396X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_395X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_395X))), (void *)(((char *) (-3 + string_388X))),len_396X)))) {
        return foo_394X;}
      else {
        goto L26886;}}
    else {
      goto L26886;}}}
 L26871: {
  next_397X = arg0K0;
  addr_398X = s48_allocate_small(20);
  *((long *) addr_398X) = (long) (4154);
  x_399X = 3 + (((long) (addr_398X + 4)));
  *((long *) (((char *) (-3 + x_399X)))) = (long) (string_388X);
  *((long *) ((((char *) (-3 + x_399X))) + 4)) = (long) (5);
  *((long *) ((((char *) (-3 + x_399X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_399X))) + 12)) = (long) (next_397X);
  if ((3 == (3 & x_399X))) {
    arg0K0 = (-4 & x_399X);
    goto L26877;}
  else {
    arg0K0 = x_399X;
    goto L26877;}}
 L26886: {
  link_400X = *((long *) ((((char *) (-3 + foo_394X))) + 12));
  if ((0 == (3 & link_400X))) {
    arg0K0 = (3 + (-4 & link_400X));
    goto L26866;}
  else {
    arg0K0 = link_400X;
    goto L26866;}}
 L26877: {
  value_401X = arg0K0;
  addr_402X = (((char *) (-3 + table_387X))) + (((index_391X)<<2));S48_WRITE_BARRIER(table_387X, addr_402X, value_401X);
  *((long *) addr_402X) = (long) (value_401X);
  return x_399X;}
}
static void HtopD11555(void)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long id_445X;
  long new_444X;
  char * addr_443X;
  long val_442X;
  long channel_441X;
  long i_440X;
  long id_439X;
  long status_438X;
  long v_437X;
  char v_436X;
  long channel_435X;
  long i_434X;
  char * addr_433X;
  long next_link_432X;
  long new_foo_431X;
  char v_430X;
  char * addr_429X;
  long foo_428X;
  char * addr_427X;
  long l_426X;
  long v_425X;
  long okay_link_424X;
  long foo_link_423X;
  char * addr_422X;
  char * addr_421X;
  char * addr_420X;
  char * addr_419X;
  long val_418X;
  char tracedP_417X;
  long next_416X;
  long thing_415X;
  long pair_414X;
  long alist_413X;
  long l2_412X;
  long goners_411X;
  long okay_410X;
  long alist_409X;
  long foo_link_408X;
  long v_407X;
  long pc_406X;
  long code_405X;
  long i_404X;
  long table_403X;
 {  table_403X = s48_trace_value((Sthe_symbol_tableS));
  arg0K0 = 0;
  goto L27960;}
 L27960: {
  i_404X = arg0K0;
  if ((1024 == i_404X)) {
    Sthe_symbol_tableS = table_403X;
    code_405X = Slast_code_calledS;
    pc_406X = Ssaved_pcS;
    Slast_code_calledS = code_405X;
    Scode_pointerS = ((((char *) (-3 + code_405X))) + pc_406X);
    Slast_code_pointer_resumedS = (Scode_pointerS);
    v_407X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_407X;
    arg0K1 = 25;
    arg0K2 = 25;
    goto L14376;}
  else {
    foo_link_408X = *((long *) ((((char *) (-3 + table_403X))) + (((i_404X)<<2))));
    arg0K0 = foo_link_408X;
    arg0K1 = 1;
    goto L18652;}}
 L14376: {
  alist_409X = arg0K0;
  okay_410X = arg0K1;
  goners_411X = arg0K2;
  if ((25 == alist_409X)) {SHARED_SETB((Sfinalizer_alistS), okay_410X);
    l2_412X = Sfinalize_theseS;
    if ((25 == goners_411X)) {
      arg0K0 = l2_412X;
      goto L14383;}
    else {
      arg0K0 = goners_411X;
      goto L14438;}}
  else {
    alist_413X = s48_trace_value(alist_409X);
    pair_414X = s48_trace_value((*((long *) (((char *) (-3 + alist_413X))))));
    thing_415X = *((long *) (((char *) (-3 + pair_414X))));
    next_416X = *((long *) ((((char *) (-3 + alist_413X))) + 4));
    tracedP_417X = s48_extantP(thing_415X);
    val_418X = s48_trace_value(thing_415X);
    addr_419X = ((char *) (-3 + pair_414X));S48_WRITE_BARRIER(pair_414X, addr_419X, val_418X);
    *((long *) addr_419X) = (long) (val_418X);
    addr_420X = ((char *) (-3 + alist_413X));S48_WRITE_BARRIER(alist_413X, addr_420X, pair_414X);
    *((long *) addr_420X) = (long) (pair_414X);
    if (tracedP_417X) {
      addr_421X = (((char *) (-3 + alist_413X))) + 4;S48_WRITE_BARRIER(alist_413X, addr_421X, okay_410X);
      *((long *) addr_421X) = (long) (okay_410X);
      arg0K0 = next_416X;
      arg0K1 = alist_413X;
      arg0K2 = goners_411X;
      goto L14376;}
    else {
      addr_422X = (((char *) (-3 + alist_413X))) + 4;S48_WRITE_BARRIER(alist_413X, addr_422X, goners_411X);
      *((long *) addr_422X) = (long) (goners_411X);
      arg0K0 = next_416X;
      arg0K1 = okay_410X;
      arg0K2 = alist_413X;
      goto L14376;}}}
 L18652: {
  foo_link_423X = arg0K0;
  okay_link_424X = arg0K1;
  if ((0 == (3 & foo_link_423X))) {
    arg0K0 = (3 + (-4 & foo_link_423X));
    goto L18654;}
  else {
    arg0K0 = foo_link_423X;
    goto L18654;}}
 L14383: {
  v_425X = arg0K0;
  Sfinalize_theseS = v_425X;
  arg0K0 = 0;
  goto L26339;}
 L14438: {
  l_426X = arg0K0;
  if ((25 == (*((long *) ((((char *) (-3 + l_426X))) + 4))))) {
    addr_427X = (((char *) (-3 + l_426X))) + 4;S48_WRITE_BARRIER(l_426X, addr_427X, l2_412X);
    *((long *) addr_427X) = (long) (l2_412X);
    arg0K0 = goners_411X;
    goto L14383;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + l_426X))) + 4)));
    goto L14438;}}
 L18654: {
  foo_428X = arg0K0;
  if ((1 == foo_428X)) {
    addr_429X = (((char *) (-3 + table_403X))) + (((i_404X)<<2));S48_WRITE_BARRIER(table_403X, addr_429X, okay_link_424X);
    *((long *) addr_429X) = (long) (okay_link_424X);
    arg0K0 = (1 + i_404X);
    goto L27960;}
  else {
    v_430X = s48_extantP(foo_428X);
    if (v_430X) {
      new_foo_431X = s48_trace_value(foo_428X);
      next_link_432X = *((long *) ((((char *) (-3 + new_foo_431X))) + 4));
      addr_433X = (((char *) (-3 + new_foo_431X))) + 4;S48_WRITE_BARRIER(new_foo_431X, addr_433X, okay_link_424X);
      *((long *) addr_433X) = (long) (okay_link_424X);
      if ((3 == (3 & new_foo_431X))) {
        arg0K0 = next_link_432X;
        arg0K1 = (-4 & new_foo_431X);
        goto L18652;}
      else {
        arg0K0 = next_link_432X;
        arg0K1 = new_foo_431X;
        goto L18652;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + foo_428X))) + 4)));
      arg0K1 = okay_link_424X;
      goto L18652;}}}
 L26339: {
  i_434X = arg0K0;
  if ((i_434X == (Snumber_of_channelsS))) {
    arg0K0 = 0;
    goto L14508;}
  else {
    channel_435X = *((Svm_channelsS) + i_434X);
    if ((1 == channel_435X)) {
      goto L26373;}
    else {
      v_436X = s48_extantP(channel_435X);
      if (v_436X) {
        v_437X = s48_trace_value(channel_435X);
        arg0K0 = v_437X;
        goto L26366;}
      else {
        if ((0 == (*((long *) (((char *) (-3 + channel_435X))))))) {
          arg0K0 = 1;
          goto L26366;}
        else {
          status_438X = close_channelB(channel_435X);
          id_439X = *((long *) ((((char *) (-3 + channel_435X))) + 4));
          if ((status_438X == NO_ERRORS)) {
            goto L26397;}
          else {channel_close_error(status_438X, (*((long *) ((((char *) (-3 + channel_435X))) + 8))), id_439X);
            goto L26397;}}}}}}
 L14508: {
  i_440X = arg0K0;
  if ((i_440X == (Snumber_of_channelsS))) {
    Spending_interruptsS = (4 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        return;}
      else {
        return;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      return;}}
  else {
    channel_441X = *((Svm_channelsS) + i_440X);
    if ((1 == channel_441X)) {
      goto L14536;}
    else {
      if ((0 == (*((long *) (((char *) (-3 + channel_441X))))))) {
        goto L14536;}
      else {
        val_442X = s48_trace_value((*((long *) ((((char *) (-3 + channel_441X))) + 4))));
        addr_443X = (((char *) (-3 + channel_441X))) + 4;S48_WRITE_BARRIER(channel_441X, addr_443X, val_442X);
        *((long *) addr_443X) = (long) (val_442X);
        goto L14536;}}}}
 L26373: {
  arg0K0 = (1 + i_434X);
  goto L26339;}
 L26366: {
  new_444X = arg0K0;
  *((Svm_channelsS) + i_434X) = new_444X;
  goto L26373;}
 L26397: {
  if ((1 == (*((long *) ((((char *) (-3 + channel_435X))) + 12))))) {
    id_445X = *((long *) ((((char *) (-3 + channel_435X))) + 4));
    ps_write_string("Channel closed: ", (stderr));
    if ((0 == (3 & id_445X))) {
      ps_write_integer((((id_445X)>>2)), (stderr));
      goto L22534;}
    else {write_vm_string(id_445X, (stderr));
      goto L22534;}}
  else {
    arg0K0 = 1;
    goto L26366;}}
 L14536: {
  arg0K0 = (1 + i_440X);
  goto L14508;}
 L22534: {
  ps_write_string(" ", (stderr));
  ps_write_integer(((((*((long *) ((((char *) (-3 + channel_435X))) + 8))))>>2)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  arg0K0 = 1;
  goto L26366;}
}
static void HtopD11566(void)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long merged_arg0K0;

  int Hentry_tracer958446_return_tag;
  long Hentry_tracer9584460_return_value;
  long foo_link_447X;
  char * addr_516X;
  long next_link_515X;
  long new_foo_514X;
  long foo_513X;
  long done_link_512X;
  long foo_link_511X;
  long v_510X;
  long size_509X;
  char * pointer_508X;
  long v_507X;
  long v_506X;
  long v_505X;
  long cells_504X;
  long size_503X;
  char * pointer_502X;
  char * contents_pointer_501X;
  long new_code_500X;
  long mask_size_499X;
  char * code_pointer_498X;
  long pc_497X;
  char * pointer_496X;
  char * pointer_495X;
  char * cont_494X;
  char * addr_493X;
  long val_492X;
  long unused_491X;
  char * a_490X;
  char x_489X;
  long pair_488X;
  long v_487X;
  long v_486X;
  long alist_485X;
  char * addr_484X;
  long value_483X;
  long v_482X;
  long v_481X;
  long v_480X;
  long v_479X;
  long v_478X;
  long v_477X;
  long v_476X;
  long v_475X;
  long v_474X;
  long v_473X;
  long v_472X;
  long v_471X;
  long v_470X;
  long v_469X;
  long v_468X;
  long v_467X;
  long v_466X;
  long v_465X;
  long v_464X;
  long code_463X;
  long i_462X;
  char * addr_461X;
  long value_460X;
  long table_459X;
  long i_458X;
  long x2_457X;
  char * cell_456X;
  long i_455X;
  long x2_454X;
  char * cell_453X;
  long table_452X;
  char * frame_451X;
  long length_450X;
  char * frame_449X;
  long v_448X;
 {  v_448X = s48_trace_value((Sempty_logS));
  Sempty_logS = v_448X;
  arg2K0 = (Sexternal_root_stackS);
  goto L10617;}
 L10617: {
  frame_449X = arg2K0;
  if ((frame_449X == NULL)) {
    arg2K0 = (Spermanent_external_rootsS);
    goto L10643;}
  else {
    length_450X = *((long *) frame_449X);
    arg0K0 = 0;
    goto L10625;}}
 L10643: {
  frame_451X = arg2K0;
  if ((frame_451X == NULL)) {s48_initializing_gc_root();
    table_452X = s48_trace_value((Simported_bindingsS));
    arg0K0 = 0;
    goto L25145;}
  else {
    cell_453X = ((char *) (*((long *) (frame_451X + 8))));
    x2_454X = s48_trace_value((*((long *) cell_453X)));
    *((long *) cell_453X) = (long) (x2_454X);
    arg2K0 = (((char *) (*((long *) frame_451X))));
    goto L10643;}}
 L10625: {
  i_455X = arg0K0;
  if ((i_455X == length_450X)) {
    arg2K0 = (((char *) (*((long *) (frame_449X + 4)))));
    goto L10617;}
  else {
    cell_456X = ((char *) (*((long *) (frame_449X + (8 + (((i_455X)<<2)))))));
    x2_457X = s48_trace_value((*((long *) cell_456X)));
    *((long *) cell_456X) = (long) (x2_457X);
    arg0K0 = (1 + i_455X);
    goto L10625;}}
 L25145: {
  i_458X = arg0K0;
  if ((1024 == i_458X)) {
    Simported_bindingsS = table_452X;
    table_459X = s48_trace_value((Sexported_bindingsS));
    arg0K0 = 0;
    goto L25166;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_452X))) + (((i_458X)<<2)))));
    Hentry_tracer958446_return_tag = 0;
    goto Hentry_tracer958446;
   Hentry_tracer958446_return_0:
    value_460X = Hentry_tracer9584460_return_value;
    addr_461X = (((char *) (-3 + table_452X))) + (((i_458X)<<2));S48_WRITE_BARRIER(table_452X, addr_461X, value_460X);
    *((long *) addr_461X) = (long) (value_460X);
    arg0K0 = (1 + i_458X);
    goto L25145;}}
 L25166: {
  i_462X = arg0K0;
  if ((1024 == i_462X)) {
    Sexported_bindingsS = table_459X;
    code_463X = current_code_vector();
    Ssaved_pcS = ((Scode_pointerS) - (((char *) (-3 + code_463X))));
    v_464X = s48_trace_value(code_463X);
    Slast_code_calledS = v_464X;
    v_465X = s48_trace_value((SvalS));
    SvalS = v_465X;
    v_466X = s48_trace_value((Scurrent_threadS));
    Scurrent_threadS = v_466X;
    v_467X = s48_trace_value((Sinterrupted_byte_opcode_return_codeS));
    Sinterrupted_byte_opcode_return_codeS = v_467X;
    v_468X = s48_trace_value((Sinterrupted_native_call_return_codeS));
    Sinterrupted_native_call_return_codeS = v_468X;
    v_469X = s48_trace_value((Snative_poll_return_codeS));
    Snative_poll_return_codeS = v_469X;
    v_470X = s48_trace_value((Sexception_return_codeS));
    Sexception_return_codeS = v_470X;
    v_471X = s48_trace_value((Snative_exception_return_codeS));
    Snative_exception_return_codeS = v_471X;
    v_472X = s48_trace_value((Scall_with_values_return_codeS));
    Scall_with_values_return_codeS = v_472X;
    v_473X = s48_trace_value((Sinterrupted_templateS));
    Sinterrupted_templateS = v_473X;
    v_474X = SHARED_REF((Ssession_dataS));
    v_475X = s48_trace_value(v_474X);SHARED_SETB((Ssession_dataS), v_475X);
    v_476X = SHARED_REF((Sexception_handlersS));
    v_477X = s48_trace_value(v_476X);SHARED_SETB((Sexception_handlersS), v_477X);
    v_478X = SHARED_REF((Sinterrupt_handlersS));
    v_479X = s48_trace_value(v_478X);SHARED_SETB((Sinterrupt_handlersS), v_479X);
    v_480X = SHARED_REF((Sfinalize_theseS));
    v_481X = s48_trace_value(v_480X);SHARED_SETB((Sfinalize_theseS), v_481X);
    v_482X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_482X;
    goto L10683;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_459X))) + (((i_462X)<<2)))));
    Hentry_tracer958446_return_tag = 1;
    goto Hentry_tracer958446;
   Hentry_tracer958446_return_1:
    value_483X = Hentry_tracer9584460_return_value;
    addr_484X = (((char *) (-3 + table_459X))) + (((i_462X)<<2));S48_WRITE_BARRIER(table_459X, addr_484X, value_483X);
    *((long *) addr_484X) = (long) (value_483X);
    arg0K0 = (1 + i_462X);
    goto L25166;}}
 L10683: {
  alist_485X = arg0K0;
  if ((25 == alist_485X)) {
    v_486X = s48_trace_value((Spending_channels_headS));
    Spending_channels_headS = v_486X;
    v_487X = s48_trace_value((Spending_channels_tailS));
    Spending_channels_tailS = v_487X;
    if ((Sstack_warningPS)) {
      arg2K0 = (Sstack_beginS);
      goto L7512;}
    else {
      goto L18885;}}
  else {
    pair_488X = *((long *) (((char *) (-3 + alist_485X))));
    x_489X = s48_extantP((*((long *) (((char *) (-3 + pair_488X))))));
    if (x_489X) {
      goto L10708;}
    else {s48_trace_stob_contentsB((*((long *) (((char *) (-3 + pair_488X))))));
      goto L10708;}}}
 L7512: {
  a_490X = arg2K0;
  if ((252645135 == (*((long *) a_490X)))) {
    arg2K0 = (a_490X + 4);
    goto L7512;}
  else {
    unused_491X = (((a_490X - (Sstack_beginS)))>>2);
    if ((unused_491X < 30)) {
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      ps_write_string("[Alert: stack overconsumption (", (stderr));
      ps_write_integer(unused_491X, (stderr));
      ps_write_string("); please inform the Scheme 48 implementors]", (stderr));
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      Sstack_warningPS = 0;
      goto L18885;}
    else {
      goto L18885;}}}
 L18885: {
s48_trace_locationsB((SstackS), ((SstackS) + (-4 & ((ScontS) - (SstackS)))));
  arg2K0 = (ScontS);
  goto L18895;}
 L10708: {
  val_492X = s48_trace_value((*((long *) ((((char *) (-3 + pair_488X))) + 4))));
  addr_493X = (((char *) (-3 + pair_488X))) + 4;S48_WRITE_BARRIER(pair_488X, addr_493X, val_492X);
  *((long *) addr_493X) = (long) (val_492X);
  arg0K0 = (*((long *) ((((char *) (-3 + alist_485X))) + 4)));
  goto L10683;}
 L18895: {
  cont_494X = arg2K0;
  pointer_495X = ((char *) (*((long *) cont_494X)));
  pointer_496X = pointer_495X + -5;
  pc_497X = ((((*((unsigned char *) pointer_496X)))<<8)) + (*((unsigned char *) (pointer_496X + 1)));
  code_pointer_498X = ((char *) (*((long *) cont_494X)));
  mask_size_499X = *((unsigned char *) (code_pointer_498X + -3));
  new_code_500X = s48_trace_value((3 + (((long) (pointer_495X + (0 - pc_497X))))));
  contents_pointer_501X = cont_494X + 4;
  *((long *) cont_494X) = (long) ((((long) ((((char *) (-3 + new_code_500X))) + pc_497X))));
  if ((0 == mask_size_499X)) {
    pointer_502X = (((char *) (*((long *) cont_494X)))) + -2;
    size_503X = ((((*((unsigned char *) pointer_502X)))<<8)) + (*((unsigned char *) (pointer_502X + 1)));
    if ((65535 == size_503X)) {
      arg0K0 = ((((*((long *) (cont_494X + 4))))>>2));
      goto L15791;}
    else {
      arg0K0 = size_503X;
      goto L15791;}}
  else {s48_trace_continuation_contentsB(contents_pointer_501X, code_pointer_498X, mask_size_499X);
    goto L18905;}}
 L15791: {
  cells_504X = arg0K0;s48_trace_locationsB(contents_pointer_501X, (contents_pointer_501X + (((cells_504X)<<2))));
  goto L18905;}
 L18905: {
  if ((cont_494X == (Sbottom_of_stackS))) {
    v_505X = s48_trace_value((Sheap_continuationS));
    Sheap_continuationS = v_505X;
    v_506X = s48_trace_value((Stemp0S));
    Stemp0S = v_506X;
    v_507X = s48_trace_value((Stemp1S));
    Stemp1S = v_507X;
    return;}
  else {
    pointer_508X = (((char *) (*((long *) cont_494X)))) + -2;
    size_509X = ((((*((unsigned char *) pointer_508X)))<<8)) + (*((unsigned char *) (pointer_508X + 1)));
    if ((65535 == size_509X)) {
      arg0K0 = ((((*((long *) (cont_494X + 4))))>>2));
      goto L18943;}
    else {
      arg0K0 = size_509X;
      goto L18943;}}}
 L18943: {
  v_510X = arg0K0;
  arg2K0 = (cont_494X + (4 + (((v_510X)<<2))));
  goto L18895;}
 Hentry_tracer958446: {
  foo_link_447X = merged_arg0K0;{
  arg0K0 = foo_link_447X;
  arg0K1 = 1;
  goto L18724;}
 L18724: {
  foo_link_511X = arg0K0;
  done_link_512X = arg0K1;
  if ((0 == (3 & foo_link_511X))) {
    arg0K0 = (3 + (-4 & foo_link_511X));
    goto L18726;}
  else {
    arg0K0 = foo_link_511X;
    goto L18726;}}
 L18726: {
  foo_513X = arg0K0;
  if ((1 == foo_513X)) {
    Hentry_tracer9584460_return_value = done_link_512X;
    goto Hentry_tracer958446_return;}
  else {
    new_foo_514X = s48_trace_value(foo_513X);
    next_link_515X = *((long *) ((((char *) (-3 + new_foo_514X))) + 12));
    addr_516X = (((char *) (-3 + new_foo_514X))) + 12;S48_WRITE_BARRIER(new_foo_514X, addr_516X, done_link_512X);
    *((long *) addr_516X) = (long) (done_link_512X);
    if ((3 == (3 & new_foo_514X))) {
      arg0K0 = next_link_515X;
      arg0K1 = (-4 & new_foo_514X);
      goto L18724;}
    else {
      arg0K0 = next_link_515X;
      arg0K1 = new_foo_514X;
      goto L18724;}}}
 Hentry_tracer958446_return:
  switch (Hentry_tracer958446_return_tag) {
  case 0: goto Hentry_tracer958446_return_0;
  default: goto Hentry_tracer958446_return_1;
  }}

}
void s48_set_native_protocolB(long protocol_517X)
{

 {  s48_Snative_protocolS = protocol_517X;
  return;}
}
void s48_set_extension_valueB(long value_518X)
{

 {  s48_Sextension_valueS = value_518X;
  return;}
}
long s48_channel_count(void)
{

 {  return (Snumber_of_channelsS);}
}
long *s48_channels(void)
{

 {  return (Svm_channelsS);}
}
char s48_os_signal_pending(void)
{
  long arg0K0;
  long v_519X;
 {  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_endS))) {
    return 0;}
  else {
    if ((31 == (Sos_signal_ring_readyS))) {
      arg0K0 = 0;
      goto L3498;}
    else {
      arg0K0 = (1 + (Sos_signal_ring_readyS));
      goto L3498;}}}
 L3498: {
  v_519X = arg0K0;
  Sos_signal_ring_readyS = v_519X;
  return 1;}
}
long s48_imported_bindings(void)
{

 {  return (Simported_bindingsS);}
}
long s48_exported_bindings(void)
{

 {  return (Sexported_bindingsS);}
}
long s48_symbol_table(void)
{

 {  return (Sthe_symbol_tableS);}
}
char * s48_set_gc_roots_baseB(void)
{
  char * old_base_520X;
 {  old_base_520X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = (Sexternal_root_stackS);
  return old_base_520X;}
}
char s48_release_gc_roots_baseB(char * old_base_521X)
{
  char * current_base_522X;
 {  current_base_522X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = old_base_521X;
  if (((Sexternal_root_stackS) == current_base_522X)) {
    return 1;}
  else {
    Sexternal_root_stackS = current_base_522X;
    return 0;}}
}
void s48_reset_external_rootsB(void)
{

 {  Sexternal_root_stackS = NULL;
  Sexternal_root_stack_baseS = NULL;
  Spermanent_external_rootsS = NULL;
  return;}
}
void s48_note_event(void)
{

 {  s48_Spending_eventsPS = 1;
  s48_Sstack_limitS = (((char *) -1));
  return;}
}
void s48_reset_interruptsB(void)
{

 {  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Senabled_interruptsS = 0;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  return;}
}
void s48_disable_interruptsB(void)
{

 {  s48_Spending_interruptPS = 0;
  Senabled_interruptsS = 0;
  return;}
}
void s48_add_os_signal(long sig_523X)
{
  long arg0K0;
  long v_524X;
 {  if ((31 == (Sos_signal_ring_endS))) {
    arg0K0 = 0;
    goto L4461;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_endS));
    goto L4461;}}
 L4461: {
  v_524X = arg0K0;
  Sos_signal_ring_endS = v_524X;
  if (((Sos_signal_ring_startS) == (Sos_signal_ring_endS))) {
    ps_error("OS signal ring too small, report to Scheme 48 maintainers", 0);
    goto L4463;}
  else {
    goto L4463;}}
 L4463: {
  *(Sos_signal_ringS + (Sos_signal_ring_endS)) = sig_523X;
  return;}
}
void s48_push_gc_rootsB(char * frame_525X, long n_526X)
{

 {  *((long *) frame_525X) = (long) (n_526X);
  *((long *) (frame_525X + 4)) = (long) ((((long) (Sexternal_root_stackS))));
  Sexternal_root_stackS = frame_525X;
  return;}
}
char * s48_register_gc_rootB(char * loc_addr_527X)
{
  char * x_529X;
  char * frame_528X;
 {  frame_528X = (char *)malloc(12);
  if ((frame_528X == NULL)) {
    ps_error("out of memory registering a global root", 0);
    goto L4669;}
  else {
    goto L4669;}}
 L4669: {
  *((long *) frame_528X) = (long) ((((long) (Spermanent_external_rootsS))));
  *((long *) (frame_528X + 4)) = (long) ((((long) NULL)));
  x_529X = Spermanent_external_rootsS;
  if ((x_529X == NULL)) {
    goto L4689;}
  else {
    *((long *) ((Spermanent_external_rootsS) + 4)) = (long) ((((long) frame_528X)));
    goto L4689;}}
 L4689: {
  *((long *) (frame_528X + 8)) = (long) ((((long) loc_addr_527X)));
  Spermanent_external_rootsS = frame_528X;
  return frame_528X;}
}
void s48_stack_setB(long x_530X, long value_531X)
{

 {  *((long *) ((SstackS) + (((x_530X)<<2)))) = (long) (value_531X);
  return;}
}
long s48_stack_ref(long i_532X)
{

 {  return (*((long *) ((SstackS) + (((i_532X)<<2)))));}
}
void s48_push(long x_533X)
{

 {  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_533X);
  return;}
}
long s48_resetup_external_exception(long new_why_534X, long additional_nargs_535X)
{
  long old_why_537X;
  long old_nargs_536X;
 {  old_nargs_536X = Sexternal_exception_nargsS;
  old_why_537X = *((long *) ((SstackS) + (((old_nargs_536X)<<2))));
  *((long *) ((SstackS) + (((old_nargs_536X)<<2)))) = (long) ((((new_why_534X)<<2)));
  Sexternal_exception_nargsS = (old_nargs_536X + additional_nargs_535X);
  return old_why_537X;}
}
char s48_pop_gc_rootsB(void)
{

 {  if (((Sexternal_root_stackS) == (Sexternal_root_stack_baseS))) {
    return 0;}
  else {
    Sexternal_root_stackS = (((char *) (*((long *) ((Sexternal_root_stackS) + 4)))));
    return 1;}}
}
void s48_unregister_gc_rootB(char * frame_538X)
{
  char * previous_540X;
  char * next_539X;
 {  if ((frame_538X == (Spermanent_external_rootsS))) {
    Spermanent_external_rootsS = (((char *) (*((long *) frame_538X))));
    goto L9119;}
  else {
    next_539X = ((char *) (*((long *) frame_538X)));
    previous_540X = ((char *) (*((long *) (frame_538X + 4))));
    *((long *) previous_540X) = (long) ((((long) next_539X)));
    if ((next_539X == NULL)) {
      goto L9119;}
    else {
      *((long *) (next_539X + 4)) = (long) ((((long) previous_540X)));
      goto L9119;}}}
 L9119: {
  free(frame_538X);
  return;}
}
char * s48_shorten_bignum(char * external_bignum_541X, long number_of_digits_542X)
{
  long waste_size_547X;
  long old_data_size_546X;
  long new_data_size_545X;
  long new_size_544X;
  long bignum_543X;
 {  bignum_543X = 3 + (((long) external_bignum_541X));
  new_size_544X = 4 + (-4 & (7 + (((number_of_digits_542X)<<2))));
  new_data_size_545X = -4 + new_size_544X;
  old_data_size_546X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + bignum_543X))) + -4))))>>8);
  waste_size_547X = old_data_size_546X - new_data_size_545X;
  if ((waste_size_547X < 0)) {
    ps_error("shorten bignum", 2, new_data_size_545X, old_data_size_546X);
    goto L9852;}
  else {
    goto L9852;}}
 L9852: {
  if ((waste_size_547X < 4)) {
    return external_bignum_541X;}
  else {
    *((long *) ((((char *) (-3 + bignum_543X))) + -4)) = (long) ((78 + (((new_data_size_545X)<<8))));
    *((long *) ((((char *) (((long) ((((char *) (-3 + bignum_543X))) + (-4 & (3 + new_size_544X))))))) + -4)) = (long) ((-946 + (((waste_size_547X)<<8))));
    return external_bignum_541X;}}
}
long s48_allocate_string(long len_548X)
{
  long arg0K0;
  long string_551X;
  char * addr_550X;
  long len_549X;
 {  len_549X = ((len_548X)<<2);
  addr_550X = s48_allocate_untracedAgc((4 + len_549X));
  if ((addr_550X == NULL)) {
    arg0K0 = 1;
    goto L12681;}
  else {
    *((long *) addr_550X) = (long) ((66 + (((len_549X)<<8))));
    arg0K0 = (3 + (((long) (addr_550X + 4))));
    goto L12681;}}
 L12681: {
  string_551X = arg0K0;
  if ((1 == string_551X)) {
    ps_error("Out of space, unable to allocate", 0);
    return string_551X;}
  else {
    return string_551X;}}
}
long s48_allocate_bignum(long size_552X)
{
  char * addr_553X;
 {  addr_553X = s48_allocate_small((4 + size_552X));
  *((long *) addr_553X) = (long) ((78 + (((size_552X)<<8))));
  return (3 + (((long) (addr_553X + 4))));}
}
void s48_enable_interruptsB(void)
{

 {  Senabled_interruptsS = -1;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      return;}
    else {
      return;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    return;}}
}
long s48_set_channel_os_index(long channel_554X, long os_index_555X)
{
  char * addr_562X;
  long val_561X;
  long v_560X;
  long x_559X;
  long old_index_558X;
  char x_557X;
  char temp_556X;
 {  temp_556X = os_index_555X < (Snumber_of_channelsS);
  if (temp_556X) {
    goto L14667;}
  else {
    x_557X = add_more_channels(os_index_555X);
    if (x_557X) {
      goto L14667;}
    else {
      return 36;}}}
 L14667: {
  if ((1 == (*((Svm_channelsS) + os_index_555X)))) {
    old_index_558X = (((*((long *) ((((char *) (-3 + channel_554X))) + 8))))>>2);
    x_559X = *((long *) ((((char *) (-3 + channel_554X))) + 20));
    if ((5 == x_559X)) {
      v_560X = ps_abort_fd_op(old_index_558X);enqueue_channelB(old_index_558X, v_560X, 1);
      goto L14653;}
    else {
      goto L14653;}}
  else {
    return 44;}}
 L14653: {
  *((Svm_channelsS) + old_index_558X) = 1;
  *((Svm_channelsS) + os_index_555X) = channel_554X;
  val_561X = ((os_index_555X)<<2);
  addr_562X = (((char *) (-3 + channel_554X))) + 8;S48_WRITE_BARRIER(channel_554X, addr_562X, val_561X);
  *((long *) addr_562X) = (long) (val_561X);
  return 5;}
}
long s48_enter_string_utf_8(char * p_563X)
{
  long arg0K1;
  long arg0K0;
  long vm_577X;
  long string_576X;
  char * addr_575X;
  long len_574X;
  long decoded_573X;
  long consumed_572X;
  long count_571X;
  long v_570X;
  char incompleteP_569X;
  char v_568X;
  char encoding_okP_567X;
  long target_index_566X;
  long index_565X;
  long size_564X;
 {  size_564X = strlen((char *) (((char *)p_563X)));
  arg0K0 = 0;
  arg0K1 = 0;
  goto L16841;}
 L16841: {
  index_565X = arg0K0;
  target_index_566X = arg0K1;
  if ((index_565X < size_564X)) {
    encoding_okP_567X = decode_scalar_value(2, (p_563X + index_565X), (size_564X - index_565X), &v_568X, &incompleteP_569X, &v_570X, &count_571X);
    if (encoding_okP_567X) {
      if (incompleteP_569X) {
        arg0K0 = index_565X;
        arg0K1 = target_index_566X;
        goto L16818;}
      else {
        arg0K0 = (index_565X + count_571X);
        arg0K1 = (1 + target_index_566X);
        goto L16841;}}
    else {
      arg0K0 = (1 + index_565X);
      arg0K1 = (1 + target_index_566X);
      goto L16841;}}
  else {
    arg0K0 = index_565X;
    arg0K1 = target_index_566X;
    goto L16818;}}
 L16818: {
  consumed_572X = arg0K0;
  decoded_573X = arg0K1;
  len_574X = ((decoded_573X)<<2);
  addr_575X = s48_allocate_untracedAgc((4 + len_574X));
  if ((addr_575X == NULL)) {
    arg0K0 = 1;
    goto L16859;}
  else {
    *((long *) addr_575X) = (long) ((66 + (((len_574X)<<8))));
    arg0K0 = (3 + (((long) (addr_575X + 4))));
    goto L16859;}}
 L16859: {
  string_576X = arg0K0;
  if ((1 == string_576X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_576X;
    goto L16824;}
  else {
    arg0K0 = string_576X;
    goto L16824;}}
 L16824: {
  vm_577X = arg0K0;decode_utf_8B(p_563X, vm_577X, consumed_572X);
  return vm_577X;}
}
long s48_enter_string_utf_8_n(char * p_578X, long size_579X)
{
  long arg0K1;
  long arg0K0;
  long vm_592X;
  long string_591X;
  char * addr_590X;
  long len_589X;
  long decoded_588X;
  long consumed_587X;
  long count_586X;
  long v_585X;
  char incompleteP_584X;
  char v_583X;
  char encoding_okP_582X;
  long target_index_581X;
  long index_580X;
 {  arg0K0 = 0;
  arg0K1 = 0;
  goto L16901;}
 L16901: {
  index_580X = arg0K0;
  target_index_581X = arg0K1;
  if ((index_580X < size_579X)) {
    encoding_okP_582X = decode_scalar_value(2, (p_578X + index_580X), (size_579X - index_580X), &v_583X, &incompleteP_584X, &v_585X, &count_586X);
    if (encoding_okP_582X) {
      if (incompleteP_584X) {
        arg0K0 = index_580X;
        arg0K1 = target_index_581X;
        goto L16881;}
      else {
        arg0K0 = (index_580X + count_586X);
        arg0K1 = (1 + target_index_581X);
        goto L16901;}}
    else {
      arg0K0 = (1 + index_580X);
      arg0K1 = (1 + target_index_581X);
      goto L16901;}}
  else {
    arg0K0 = index_580X;
    arg0K1 = target_index_581X;
    goto L16881;}}
 L16881: {
  consumed_587X = arg0K0;
  decoded_588X = arg0K1;
  len_589X = ((decoded_588X)<<2);
  addr_590X = s48_allocate_untracedAgc((4 + len_589X));
  if ((addr_590X == NULL)) {
    arg0K0 = 1;
    goto L16919;}
  else {
    *((long *) addr_590X) = (long) ((66 + (((len_589X)<<8))));
    arg0K0 = (3 + (((long) (addr_590X + 4))));
    goto L16919;}}
 L16919: {
  string_591X = arg0K0;
  if ((1 == string_591X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_591X;
    goto L16887;}
  else {
    arg0K0 = string_591X;
    goto L16887;}}
 L16887: {
  vm_592X = arg0K0;decode_utf_8B(p_578X, vm_592X, consumed_587X);
  return vm_592X;}
}
long s48_integer_or_floanum_L(long x_593X, long y_594X)
{
  long v_597X;
  long v_596X;
  long v_595X;
 {  if ((3 == (3 & x_593X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_593X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_593X))))) < (*((double *) (((char *) (-3 + y_594X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L18100;}}
  else {
    goto L18100;}}
 L18100: {
  if ((0 == (3 & x_593X))) {
    if ((0 == (3 & y_594X))) {
      if ((x_593X < y_594X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_595X = s48_bignum_test((((char *) (-3 + y_594X))));
      if ((1 == v_595X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_594X))) {
      v_596X = s48_bignum_test((((char *) (-3 + x_593X))));
      if ((1 == v_596X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_597X = s48_bignum_compare((((char *) (-3 + x_593X))), (((char *) (-3 + y_594X))));
      if ((-1 == v_597X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_G(long x_598X, long y_599X)
{
  long v_602X;
  long v_601X;
  long v_600X;
 {  if ((3 == (3 & x_598X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_598X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_599X))))) < (*((double *) (((char *) (-3 + x_598X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L18229;}}
  else {
    goto L18229;}}
 L18229: {
  if ((0 == (3 & y_599X))) {
    if ((0 == (3 & x_598X))) {
      if ((y_599X < x_598X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_600X = s48_bignum_test((((char *) (-3 + x_598X))));
      if ((1 == v_600X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_598X))) {
      v_601X = s48_bignum_test((((char *) (-3 + y_599X))));
      if ((1 == v_601X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_602X = s48_bignum_compare((((char *) (-3 + y_599X))), (((char *) (-3 + x_598X))));
      if ((-1 == v_602X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_LE(long x_603X, long y_604X)
{
  char b_605X;
 {  if ((3 == (3 & x_603X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_603X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_604X))))) < (*((double *) (((char *) (-3 + x_603X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L18358;}}
  else {
    goto L18358;}}
 L18358: {
  b_605X = integerLE(x_603X, y_604X);
  if (b_605X) {
    return 5;}
  else {
    return 1;}}
}
long s48_integer_or_floanum_GE(long x_606X, long y_607X)
{
  char b_608X;
 {  if ((3 == (3 & x_606X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_606X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_606X))))) < (*((double *) (((char *) (-3 + y_607X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L18435;}}
  else {
    goto L18435;}}
 L18435: {
  b_608X = integerGE(x_606X, y_607X);
  if (b_608X) {
    return 5;}
  else {
    return 1;}}
}
long s48_make_blank_return_code(long protocol_609X, long template_610X, long frame_size_611X, long opcode_count_612X)
{

 {s48_make_availableAgc((4 + (-4 & (18 + opcode_count_612X))));
  return make_blank_return_code(protocol_609X, template_610X, frame_size_611X, opcode_count_612X, 0);}
}
long s48_enter_string_latin_1_n(char *s_613X, long count_614X)
{

 {  return enter_stringAgc_n(s_613X, count_614X);}
}
long s48_integer_or_floanum_E(long x_615X, long y_616X)
{
  char arg3K0;
  char v_618X;
  char b_617X;
 {  if ((3 == (3 & x_615X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_615X))) + -4))))>>2))))) {
      arg3K0 = ((*((double *) (((char *) (-3 + x_615X))))) == (*((double *) (((char *) (-3 + y_616X))))));
      goto L20955;}
    else {
      goto L20951;}}
  else {
    goto L20951;}}
 L20955: {
  b_617X = arg3K0;
  if (b_617X) {
    return 5;}
  else {
    return 1;}}
 L20951: {
  v_618X = integerE(x_615X, y_616X);
  arg3K0 = v_618X;
  goto L20955;}
}
void s48_close_channel(long os_index_619X)
{
  long obj_620X;
 {  if ((os_index_619X < 0)) {
    return;}
  else {
    if ((os_index_619X < (Snumber_of_channelsS))) {
      obj_620X = *((Svm_channelsS) + os_index_619X);
      if ((3 == (3 & obj_620X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_620X))) + -4))))>>2))))) {close_channelB((*((Svm_channelsS) + os_index_619X)));
          return;}
        else {
          return;}}
      else {
        return;}}
    else {
      return;}}}
}
long s48_enter_string_latin_1(char *s_621X)
{

 {  return enter_stringAgc_n(s_621X, (strlen((char *) s_621X)));}
}
void s48_string_set(long s_622X, long i_623X, long c_624X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_629X;
  long j_628X;
  long bits_627X;
  long max_626X;
  long v_625X;
 {  if ((3 == (3 & s_622X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_622X))) + -4))))>>2))))) {
      goto L24368;}
    else {s48_raise_argument_type_error(s_622X);
      goto L24368;}}
  else {s48_raise_argument_type_error(s_622X);
    goto L24368;}}
 L24368: {
  v_625X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_622X))) + -4))))>>8)) / 4;
  max_626X = -1 + v_625X;
  if ((i_623X < 0)) {
    goto L24390;}
  else {
    if ((max_626X < i_623X)) {
      goto L24390;}
    else {
      goto L24370;}}}
 L24390: {
s48_raise_range_error((((i_623X)<<2)), 0, (((max_626X)<<2)));
  goto L24370;}
 L24370: {
  arg0K0 = 0;
  arg0K1 = 0;
  arg0K2 = c_624X;
  goto L24410;}
 L24410: {
  bits_627X = arg0K0;
  j_628X = arg0K1;
  shifted_629X = arg0K2;
  if ((j_628X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_622X))) + ((((i_623X)<<2)) + j_628X))) = (unsigned char) ((255 & shifted_629X));
    arg0K0 = (8 + bits_627X);
    arg0K1 = (1 + j_628X);
    arg0K2 = ((long)(((unsigned long)shifted_629X)>>8));
    goto L24410;}
  else {
    return;}}
}
long s48_string_ref(long s_630X, long i_631X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_637X;
  long scalar_value_636X;
  long j_635X;
  long bits_634X;
  long max_633X;
  long v_632X;
 {  if ((3 == (3 & s_630X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_630X))) + -4))))>>2))))) {
      goto L24432;}
    else {s48_raise_argument_type_error(s_630X);
      goto L24432;}}
  else {s48_raise_argument_type_error(s_630X);
    goto L24432;}}
 L24432: {
  v_632X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_630X))) + -4))))>>8)) / 4;
  max_633X = -1 + v_632X;
  if ((i_631X < 0)) {
    goto L24454;}
  else {
    if ((max_633X < i_631X)) {
      goto L24454;}
    else {
      goto L24434;}}}
 L24454: {
s48_raise_range_error((((i_631X)<<2)), 0, (((max_633X)<<2)));
  goto L24434;}
 L24434: {
  arg0K0 = 0;
  arg0K1 = 0;
  arg0K2 = 0;
  goto L24473;}
 L24473: {
  bits_634X = arg0K0;
  j_635X = arg0K1;
  scalar_value_636X = arg0K2;
  if ((j_635X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + s_630X))) + ((((i_631X)<<2)) + j_635X)))), bits_634X, x_637X)
    arg0K0 = (8 + bits_634X);
    arg0K1 = (1 + j_635X);
    arg0K2 = (x_637X + scalar_value_636X);
    goto L24473;}
  else {
    return scalar_value_636X;}}
}
long s48_string_length(long s_638X)
{

 {  if ((3 == (3 & s_638X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_638X))) + -4))))>>2))))) {
      goto L24492;}
    else {s48_raise_argument_type_error(s_638X);
      goto L24492;}}
  else {s48_raise_argument_type_error(s_638X);
    goto L24492;}}
 L24492: {
  return (((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_638X))) + -4))))>>8)) / 4);}
}
void s48_copy_latin_1_to_string_n(char *string_639X, long len_640X, long vm_string_641X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_647X;
  long j_646X;
  long bits_645X;
  long c_644X;
  long i_643X;
  long max_642X;
 {  if ((3 == (3 & vm_string_641X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_641X))) + -4))))>>2))))) {
      goto L24520;}
    else {s48_raise_argument_type_error(vm_string_641X);
      goto L24520;}}
  else {s48_raise_argument_type_error(vm_string_641X);
    goto L24520;}}
 L24520: {
  max_642X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_641X))) + -4))))>>8)) / 4;
  if ((len_640X < 0)) {
    goto L24544;}
  else {
    if ((max_642X < len_640X)) {
      goto L24544;}
    else {
      goto L24524;}}}
 L24544: {
s48_raise_range_error((((len_640X)<<2)), 0, (((max_642X)<<2)));
  goto L24524;}
 L24524: {
  arg0K0 = 0;
  goto L24562;}
 L24562: {
  i_643X = arg0K0;
  if ((i_643X < len_640X)) {
    c_644X = ((unsigned char) (*(string_639X + i_643X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_644X;
    goto L24573;}
  else {
    return;}}
 L24573: {
  bits_645X = arg0K0;
  j_646X = arg0K1;
  shifted_647X = arg0K2;
  if ((j_646X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vm_string_641X))) + ((((i_643X)<<2)) + j_646X))) = (unsigned char) ((255 & shifted_647X));
    arg0K0 = (8 + bits_645X);
    arg0K1 = (1 + j_646X);
    arg0K2 = ((long)(((unsigned long)shifted_647X)>>8));
    goto L24573;}
  else {
    arg0K0 = (1 + i_643X);
    goto L24562;}}
}
void s48_copy_latin_1_to_string(char *string_648X, long vm_string_649X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_656X;
  long j_655X;
  long bits_654X;
  long c_653X;
  long i_652X;
  long i_651X;
  long max_650X;
 {  if ((3 == (3 & vm_string_649X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_649X))) + -4))))>>2))))) {
      goto L24596;}
    else {s48_raise_argument_type_error(vm_string_649X);
      goto L24596;}}
  else {s48_raise_argument_type_error(vm_string_649X);
    goto L24596;}}
 L24596: {
  max_650X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_649X))) + -4))))>>8)) / 4;
  i_651X = strlen((char *) string_648X);
  if ((i_651X < 0)) {
    goto L24622;}
  else {
    if ((max_650X < i_651X)) {
      goto L24622;}
    else {
      goto L24602;}}}
 L24622: {
s48_raise_range_error((((i_651X)<<2)), 0, (((max_650X)<<2)));
  goto L24602;}
 L24602: {
  arg0K0 = 0;
  goto L24640;}
 L24640: {
  i_652X = arg0K0;
  if ((i_652X < (strlen((char *) string_648X)))) {
    c_653X = ((unsigned char) (*(string_648X + i_652X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_653X;
    goto L24651;}
  else {
    return;}}
 L24651: {
  bits_654X = arg0K0;
  j_655X = arg0K1;
  shifted_656X = arg0K2;
  if ((j_655X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vm_string_649X))) + ((((i_652X)<<2)) + j_655X))) = (unsigned char) ((255 & shifted_656X));
    arg0K0 = (8 + bits_654X);
    arg0K1 = (1 + j_655X);
    arg0K2 = ((long)(((unsigned long)shifted_656X)>>8));
    goto L24651;}
  else {
    arg0K0 = (1 + i_652X);
    goto L24640;}}
}
void s48_copy_string_to_latin_1(long vm_string_657X, char *string_658X)
{
  long v_659X;
 {  if ((3 == (3 & vm_string_657X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_657X))) + -4))))>>2))))) {
      goto L24674;}
    else {s48_raise_argument_type_error(vm_string_657X);
      goto L24674;}}
  else {s48_raise_argument_type_error(vm_string_657X);
    goto L24674;}}
 L24674: {
  v_659X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_657X))) + -4))))>>8)) / 4;
  copy_vm_string_to_stringUlatin_1B(vm_string_657X, 0, v_659X, string_658X);
  return;}
}
void s48_copy_string_to_latin_1_n(long vm_string_660X, long start_661X, long count_662X, char *string_663X)
{
  long max_667X;
  long v_666X;
  long max_665X;
  long v_664X;
 {  if ((3 == (3 & vm_string_660X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>2))))) {
      goto L24705;}
    else {s48_raise_argument_type_error(vm_string_660X);
      goto L24705;}}
  else {s48_raise_argument_type_error(vm_string_660X);
    goto L24705;}}
 L24705: {
  v_664X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>8)) / 4;
  max_665X = -1 + v_664X;
  if ((start_661X < 0)) {
    goto L24731;}
  else {
    if ((max_665X < start_661X)) {
      goto L24731;}
    else {
      goto L24707;}}}
 L24731: {
s48_raise_range_error((((start_661X)<<2)), 0, (((max_665X)<<2)));
  goto L24707;}
 L24707: {
  v_666X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>8)) / 4;
  max_667X = v_666X - start_661X;
  if ((count_662X < 0)) {
    goto L24748;}
  else {
    if ((max_667X < count_662X)) {
      goto L24748;}
    else {
      copy_vm_string_to_stringUlatin_1B(vm_string_660X, start_661X, count_662X, string_663X);
      return;}}}
 L24748: {
s48_raise_range_error((((count_662X)<<2)), 0, (((max_667X)<<2)));
  copy_vm_string_to_stringUlatin_1B(vm_string_660X, start_661X, count_662X, string_663X);
  return;}
}
long s48_string_utf_8_length(long vm_string_668X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_678X;
  char v_677X;
  char v_676X;
  long x_675X;
  long scalar_value_674X;
  long j_673X;
  long bits_672X;
  long char_index_671X;
  long utf_8_length_670X;
  long count_669X;
 {  if ((3 == (3 & vm_string_668X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_668X))) + -4))))>>2))))) {
      goto L24777;}
    else {s48_raise_argument_type_error(vm_string_668X);
      goto L24777;}}
  else {s48_raise_argument_type_error(vm_string_668X);
    goto L24777;}}
 L24777: {
  count_669X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_668X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24804;}
 L24804: {
  utf_8_length_670X = arg0K0;
  char_index_671X = arg0K1;
  if ((char_index_671X < count_669X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24813;}
  else {
    return utf_8_length_670X;}}
 L24813: {
  bits_672X = arg0K0;
  j_673X = arg0K1;
  scalar_value_674X = arg0K2;
  if ((j_673X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_668X))) + ((((char_index_671X)<<2)) + j_673X)))), bits_672X, x_675X)
    arg0K0 = (8 + bits_672X);
    arg0K1 = (1 + j_673X);
    arg0K2 = (x_675X + scalar_value_674X);
    goto L24813;}
  else {encode_scalar_value(2, scalar_value_674X, (((char *) 0)), 0, &v_676X, &v_677X, &count_678X);
    arg0K0 = (utf_8_length_670X + count_678X);
    arg0K1 = (1 + char_index_671X);
    goto L24804;}}
}
long s48_string_utf_8_length_n(long vm_string_679X, long start_index_680X, long count_681X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_694X;
  char v_693X;
  char v_692X;
  long x_691X;
  long scalar_value_690X;
  long j_689X;
  long bits_688X;
  long char_index_687X;
  long utf_8_length_686X;
  long max_685X;
  long v_684X;
  long max_683X;
  long v_682X;
 {  if ((3 == (3 & vm_string_679X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>2))))) {
      goto L24836;}
    else {s48_raise_argument_type_error(vm_string_679X);
      goto L24836;}}
  else {s48_raise_argument_type_error(vm_string_679X);
    goto L24836;}}
 L24836: {
  v_682X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>8)) / 4;
  max_683X = -1 + v_682X;
  if ((start_index_680X < 0)) {
    goto L24862;}
  else {
    if ((max_683X < start_index_680X)) {
      goto L24862;}
    else {
      goto L24838;}}}
 L24862: {
s48_raise_range_error((((start_index_680X)<<2)), 0, (((max_683X)<<2)));
  goto L24838;}
 L24838: {
  v_684X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>8)) / 4;
  max_685X = v_684X - start_index_680X;
  if ((count_681X < 0)) {
    goto L24879;}
  else {
    if ((max_685X < count_681X)) {
      goto L24879;}
    else {
      goto L24842;}}}
 L24879: {
s48_raise_range_error((((count_681X)<<2)), 0, (((max_685X)<<2)));
  goto L24842;}
 L24842: {
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24898;}
 L24898: {
  utf_8_length_686X = arg0K0;
  char_index_687X = arg0K1;
  if ((char_index_687X < count_681X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24907;}
  else {
    return utf_8_length_686X;}}
 L24907: {
  bits_688X = arg0K0;
  j_689X = arg0K1;
  scalar_value_690X = arg0K2;
  if ((j_689X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_679X))) + (((((start_index_680X + char_index_687X))<<2)) + j_689X)))), bits_688X, x_691X)
    arg0K0 = (8 + bits_688X);
    arg0K1 = (1 + j_689X);
    arg0K2 = (x_691X + scalar_value_690X);
    goto L24907;}
  else {encode_scalar_value(2, scalar_value_690X, (((char *) 0)), 0, &v_692X, &v_693X, &count_694X);
    arg0K0 = (utf_8_length_686X + count_694X);
    arg0K1 = (1 + char_index_687X);
    goto L24898;}}
}
void s48_copy_string_to_utf_8(long vm_string_695X, char * string_696X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_706X;
  char v_705X;
  char v_704X;
  long x_703X;
  long scalar_value_702X;
  long j_701X;
  long bits_700X;
  long target_index_699X;
  long source_index_698X;
  long count_697X;
 {  if ((3 == (3 & vm_string_695X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_695X))) + -4))))>>2))))) {
      goto L24937;}
    else {s48_raise_argument_type_error(vm_string_695X);
      goto L24937;}}
  else {s48_raise_argument_type_error(vm_string_695X);
    goto L24937;}}
 L24937: {
  count_697X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_695X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24965;}
 L24965: {
  source_index_698X = arg0K0;
  target_index_699X = arg0K1;
  if ((source_index_698X < count_697X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24974;}
  else {
    return;}}
 L24974: {
  bits_700X = arg0K0;
  j_701X = arg0K1;
  scalar_value_702X = arg0K2;
  if ((j_701X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_695X))) + ((((source_index_698X)<<2)) + j_701X)))), bits_700X, x_703X)
    arg0K0 = (8 + bits_700X);
    arg0K1 = (1 + j_701X);
    arg0K2 = (x_703X + scalar_value_702X);
    goto L24974;}
  else {encode_scalar_value(2, scalar_value_702X, (string_696X + target_index_699X), 4, &v_704X, &v_705X, &count_706X);
    arg0K0 = (1 + source_index_698X);
    arg0K1 = (target_index_699X + count_706X);
    goto L24965;}}
}
void s48_copy_string_to_utf_8_n(long vm_string_707X, long start_708X, long count_709X, char * string_710X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_723X;
  char v_722X;
  char v_721X;
  long x_720X;
  long scalar_value_719X;
  long j_718X;
  long bits_717X;
  long target_index_716X;
  long source_index_715X;
  long max_714X;
  long v_713X;
  long max_712X;
  long v_711X;
 {  if ((3 == (3 & vm_string_707X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>2))))) {
      goto L24998;}
    else {s48_raise_argument_type_error(vm_string_707X);
      goto L24998;}}
  else {s48_raise_argument_type_error(vm_string_707X);
    goto L24998;}}
 L24998: {
  v_711X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>8)) / 4;
  max_712X = -1 + v_711X;
  if ((start_708X < 0)) {
    goto L25024;}
  else {
    if ((max_712X < start_708X)) {
      goto L25024;}
    else {
      goto L25000;}}}
 L25024: {
s48_raise_range_error((((start_708X)<<2)), 0, (((max_712X)<<2)));
  goto L25000;}
 L25000: {
  v_713X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>8)) / 4;
  max_714X = v_713X - start_708X;
  if ((count_709X < 0)) {
    goto L25041;}
  else {
    if ((max_714X < count_709X)) {
      goto L25041;}
    else {
      goto L25004;}}}
 L25041: {
s48_raise_range_error((((count_709X)<<2)), 0, (((max_714X)<<2)));
  goto L25004;}
 L25004: {
  arg0K0 = 0;
  arg0K1 = 0;
  goto L25061;}
 L25061: {
  source_index_715X = arg0K0;
  target_index_716X = arg0K1;
  if ((source_index_715X < count_709X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L25070;}
  else {
    return;}}
 L25070: {
  bits_717X = arg0K0;
  j_718X = arg0K1;
  scalar_value_719X = arg0K2;
  if ((j_718X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_707X))) + (((((start_708X + source_index_715X))<<2)) + j_718X)))), bits_717X, x_720X)
    arg0K0 = (8 + bits_717X);
    arg0K1 = (1 + j_718X);
    arg0K2 = (x_720X + scalar_value_719X);
    goto L25070;}
  else {encode_scalar_value(2, scalar_value_719X, (string_710X + target_index_716X), 4, &v_721X, &v_722X, &count_723X);
    arg0K0 = (1 + source_index_715X);
    arg0K1 = (target_index_716X + count_723X);
    goto L25061;}}
}
void check_stack(void)
{
  char * arg2K0;
  char * arg2K1;
  long arg0K0;
  long v_745X;
  long address_744X;
  long x_743X;
  char * ptr_742X;
  long mask_741X;
  long size_740X;
  char * pointer_739X;
  long address_738X;
  long x_737X;
  char * addr_736X;
  char * trace_ptr_735X;
  char * mask_ptr_734X;
  long v_733X;
  char * mask_pointer_732X;
  long size_731X;
  char * pointer_730X;
  char * contents_pointer_729X;
  long mask_size_728X;
  char * code_pointer_727X;
  char * cont_726X;
  char * v_725X;
  char * v_724X;
 {  v_724X = s48_oldspace_begin();
  Soldspace_beginS = (((long) v_724X));
  v_725X = s48_oldspace_end();
  Soldspace_endS = (((long) v_725X));
  arg2K0 = (ScontS);
  goto L25194;}
 L25194: {
  cont_726X = arg2K0;
  if ((cont_726X == (Sbottom_of_stackS))) {
    return;}
  else {
    code_pointer_727X = ((char *) (*((long *) cont_726X)));
    mask_size_728X = *((unsigned char *) (code_pointer_727X + -3));
    contents_pointer_729X = cont_726X + 4;
    if ((0 == mask_size_728X)) {
      pointer_730X = (((char *) (*((long *) cont_726X)))) + -2;
      size_731X = ((((*((unsigned char *) pointer_730X)))<<8)) + (*((unsigned char *) (pointer_730X + 1)));
      if ((65535 == size_731X)) {
        arg0K0 = ((((*((long *) (cont_726X + 4))))>>2));
        goto L18866;}
      else {
        arg0K0 = size_731X;
        goto L18866;}}
    else {
      mask_pointer_732X = code_pointer_727X + -7;
      arg2K0 = (mask_pointer_732X + (0 - mask_size_728X));
      arg2K1 = contents_pointer_729X;
      goto L7928;}}}
 L18866: {
  v_733X = arg0K0;
  arg2K0 = contents_pointer_729X;
  goto L7869;}
 L7928: {
  mask_ptr_734X = arg2K0;
  trace_ptr_735X = arg2K1;
  if ((mask_ptr_734X == mask_pointer_732X)) {
    goto L21549;}
  else {
    arg0K0 = (*((unsigned char *) mask_ptr_734X));
    arg2K1 = trace_ptr_735X;
    goto L7936;}}
 L7869: {
  addr_736X = arg2K0;
  if ((addr_736X < (cont_726X + (4 + (((v_733X)<<2)))))) {
    x_737X = *((long *) addr_736X);
    if ((2 == (3 & x_737X))) {
      goto L7887;}
    else {
      if ((3 == (3 & x_737X))) {
        address_738X = -3 + x_737X;
        if ((address_738X < (Soldspace_beginS))) {
          goto L7874;}
        else {
          if (((Soldspace_endS) < address_738X)) {
            goto L7874;}
          else {
            goto L7887;}}}
      else {
        goto L7874;}}}
  else {
    goto L21549;}}
 L21549: {
  pointer_739X = (((char *) (*((long *) cont_726X)))) + -2;
  size_740X = ((((*((unsigned char *) pointer_739X)))<<8)) + (*((unsigned char *) (pointer_739X + 1)));
  if ((65535 == size_740X)) {
    arg0K0 = ((((*((long *) (cont_726X + 4))))>>2));
    goto L21554;}
  else {
    arg0K0 = size_740X;
    goto L21554;}}
 L7936: {
  mask_741X = arg0K0;
  ptr_742X = arg2K1;
  if ((0 == mask_741X)) {
    arg2K0 = (mask_ptr_734X + 1);
    arg2K1 = (trace_ptr_735X + 32);
    goto L7928;}
  else {
    if ((1 == (1 & mask_741X))) {
      x_743X = *((long *) ptr_742X);
      if ((2 == (3 & x_743X))) {
        goto L7993;}
      else {
        if ((3 == (3 & x_743X))) {
          address_744X = -3 + x_743X;
          if ((address_744X < (Soldspace_beginS))) {
            goto L7952;}
          else {
            if (((Soldspace_endS) < address_744X)) {
              goto L7952;}
            else {
              goto L7993;}}}
        else {
          goto L7952;}}}
    else {
      goto L7952;}}}
 L7887: {
  ps_error("bad descriptor in stack", 1, x_737X);
  goto L7874;}
 L7874: {
  arg2K0 = (addr_736X + 4);
  goto L7869;}
 L21554: {
  v_745X = arg0K0;
  arg2K0 = (cont_726X + (4 + (((v_745X)<<2))));
  goto L25194;}
 L7993: {
  ps_error("bad descriptor in stack", 1, x_743X);
  goto L7952;}
 L7952: {
  arg0K0 = (((mask_741X)>>1));
  arg2K1 = (ptr_742X + 4);
  goto L7936;}
}
long s48_really_add_channel(long mode_746X, long id_747X, long os_index_748X)
{
  long arg0K1;
  long arg0K0;
  long status_753X;
  long channel_752X;
  long channel_751X;
  char x_750X;
  char temp_749X;
 {s48_make_availableAgc(32);
  temp_749X = os_index_748X < (Snumber_of_channelsS);
  if (temp_749X) {
    goto L25511;}
  else {
    x_750X = add_more_channels(os_index_748X);
    if (x_750X) {
      goto L25511;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L25485;}}}
 L25511: {
  if ((1 == (*((Svm_channelsS) + os_index_748X)))) {
    channel_751X = make_channel((-4 & mode_746X), id_747X, (((os_index_748X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + os_index_748X) = channel_751X;
    arg0K0 = channel_751X;
    arg0K1 = 9;
    goto L25485;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L25485;}}
 L25485: {
  channel_752X = arg0K0;
  status_753X = arg0K1;
  if ((3 == (3 & channel_752X))) {
    if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_752X))) + -4))))>>2))))) {
      return channel_752X;}
    else {
      goto L25493;}}
  else {
    goto L25493;}}
 L25493: {
  return (((status_753X)<<2));}
}
long s48_integer_bit_count(long x_754X)
{

 {  return integer_bit_count(x_754X);}
}
long s48_enter_integer(long x_755X)
{
  char * v_756X;
 {s48_make_availableAgc(16);
  if ((536870911 < x_755X)) {
    goto L26116;}
  else {
    if ((x_755X < -536870912)) {
      goto L26116;}
    else {
      return (((x_755X)<<2));}}}
 L26116: {
  v_756X = (char *) s48_long_to_bignum(x_755X);
  return enter_bignum(v_756X);}
}
long s48_integer_or_floanum_add(long x_757X, long y_758X)
{
  long Kdouble_764X;
  char * addr_763X;
  double y_762X;
  long value_761X;
  double x_760X;
  long value_759X;
 {  if ((3 == (3 & x_757X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_757X))) + -4))))>>2))))) {
      Stemp0S = x_757X;
      Stemp1S = y_758X;s48_make_availableAgc(12);
      value_759X = Stemp0S;
      Stemp0S = 1;
      x_760X = *((double *) (((char *) (-3 + value_759X))));
      value_761X = Stemp1S;
      Stemp1S = 1;
      y_762X = *((double *) (((char *) (-3 + value_761X))));
      addr_763X = s48_allocate_small(12);
      *((long *) addr_763X) = (long) (2122);
      Kdouble_764X = 3 + (((long) (addr_763X + 4)));
      *((double *) (((char *) (-3 + Kdouble_764X)))) = (double) ((x_760X + y_762X));
      return Kdouble_764X;}
    else {
      return integer_add(x_757X, y_758X);}}
  else {
    return integer_add(x_757X, y_758X);}}
}
long s48_integer_or_floanum_sub(long x_765X, long y_766X)
{
  long Kdouble_772X;
  char * addr_771X;
  double y_770X;
  long value_769X;
  double x_768X;
  long value_767X;
 {  if ((3 == (3 & x_765X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_765X))) + -4))))>>2))))) {
      Stemp0S = x_765X;
      Stemp1S = y_766X;s48_make_availableAgc(12);
      value_767X = Stemp0S;
      Stemp0S = 1;
      x_768X = *((double *) (((char *) (-3 + value_767X))));
      value_769X = Stemp1S;
      Stemp1S = 1;
      y_770X = *((double *) (((char *) (-3 + value_769X))));
      addr_771X = s48_allocate_small(12);
      *((long *) addr_771X) = (long) (2122);
      Kdouble_772X = 3 + (((long) (addr_771X + 4)));
      *((double *) (((char *) (-3 + Kdouble_772X)))) = (double) ((x_768X - y_770X));
      return Kdouble_772X;}
    else {
      return integer_subtract(x_765X, y_766X);}}
  else {
    return integer_subtract(x_765X, y_766X);}}
}
long s48_integer_or_floanum_mul(long x_773X, long y_774X)
{
  long Kdouble_780X;
  char * addr_779X;
  double y_778X;
  long value_777X;
  double x_776X;
  long value_775X;
 {  if ((3 == (3 & x_773X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_773X))) + -4))))>>2))))) {
      Stemp0S = x_773X;
      Stemp1S = y_774X;s48_make_availableAgc(12);
      value_775X = Stemp0S;
      Stemp0S = 1;
      x_776X = *((double *) (((char *) (-3 + value_775X))));
      value_777X = Stemp1S;
      Stemp1S = 1;
      y_778X = *((double *) (((char *) (-3 + value_777X))));
      addr_779X = s48_allocate_small(12);
      *((long *) addr_779X) = (long) (2122);
      Kdouble_780X = 3 + (((long) (addr_779X + 4)));
      *((double *) (((char *) (-3 + Kdouble_780X)))) = (double) ((x_776X * y_778X));
      return Kdouble_780X;}
    else {
      return integer_multiply(x_773X, y_774X);}}
  else {
    return integer_multiply(x_773X, y_774X);}}
}
long s48_integer_bitwise_not(long x_781X)
{

 {  return integer_bitwise_not(x_781X);}
}
long s48_integer_bitwise_and(long x_782X, long y_783X)
{

 {  return integer_bitwise_and(x_782X, y_783X);}
}
long s48_integer_bitwise_ior(long x_784X, long y_785X)
{

 {  return integer_bitwise_ior(x_784X, y_785X);}
}
long s48_integer_bitwise_xor(long x_786X, long y_787X)
{

 {  return integer_bitwise_xor(x_786X, y_787X);}
}
void s48_setup_external_exception(long why_788X, long nargs_789X)
{

 {push_exception_setupB(why_788X, 1);
  if ((10 < nargs_789X)) {
    ps_error("too many arguments from external exception", 0);
    goto L27145;}
  else {
    goto L27145;}}
 L27145: {
  Sexternal_exception_nargsS = nargs_789X;
  Sexternal_exceptionPS = 1;
  return;}
}
long s48_integer_quotient(long x_790X, long y_791X)
{

 {  return Hinteger_op8301(x_790X, y_791X);}
}
long s48_integer_remainder(long x_792X, long y_793X)
{

 {  return Hinteger_op8232(x_792X, y_793X);}
}
void s48_copy_stack_into_heap(void)
{
  char * arg2K1;
  char * arg2K0;
  char * arg_797X;
  char * loc_796X;
  char * top_795X;
  long arg_count_794X;
 {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
  arg_count_794X = ((((ScontS) - (SstackS)))>>2);
  top_795X = SstackS;
  if ((1 == (((long) (ScontS))))) {
    goto L27193;}
  else {really_preserve_continuation(0);
    goto L27193;}}
 L27193: {
  SstackS = (ScontS);
  arg2K0 = ((SstackS) + -4);
  arg2K1 = (top_795X + (-4 + (((arg_count_794X)<<2))));
  goto L27222;}
 L27222: {
  loc_796X = arg2K0;
  arg_797X = arg2K1;
  if ((arg_797X < top_795X)) {
    SstackS = ((SstackS) + (0 - (((arg_count_794X)<<2))));
    return;}
  else {
    *((long *) loc_796X) = (long) ((*((long *) arg_797X)));
    arg2K0 = (loc_796X + -4);
    arg2K1 = (arg_797X + -4);
    goto L27222;}}
}
long s48_get_imported_binding(char *name_798X)
{
  long value_800X;
  long value_799X;
 {  value_799X = enter_stringAgc_n(name_798X, (strlen((char *) name_798X)));
  Stemp0S = value_799X;s48_make_availableAgc(20);
  value_800X = Stemp0S;
  Stemp0S = 1;
  return Hlookup2943((Sexported_bindingsS), value_800X, 0);}
}
void s48_define_exported_binding(char *name_801X, long value_802X)
{
  char * addr_807X;
  long x_806X;
  long value_805X;
  long value_804X;
  long name_803X;
 {  Stemp0S = value_802X;
  name_803X = enter_stringAgc_n(name_801X, (strlen((char *) name_801X)));
  Stemp1S = name_803X;s48_make_availableAgc(20);
  value_804X = Stemp1S;
  Stemp1S = 1;
  value_805X = Stemp0S;
  Stemp0S = 1;
  x_806X = Hlookup2924((Simported_bindingsS), value_804X, 0);
  addr_807X = (((char *) (-3 + x_806X))) + 8;S48_WRITE_BARRIER(x_806X, addr_807X, value_805X);
  *((long *) addr_807X) = (long) (value_805X);
  return;}
}
void s48_initialize_vm(char * stack_begin_808X, long stack_size_809X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;

  int make_hash_tableAgc_return_tag;
  long make_hash_tableAgc0_return_value;
  char * addr_849X;
  long i_848X;
  long table_847X;
  long vector_846X;
  char * addr_845X;
  char * addr_844X;
  long x_843X;
  long v_842X;
  long vector_841X;
  char * addr_840X;
  long blank_return_code_839X;
  long blank_return_code_838X;
  long blank_return_code_837X;
  long blank_return_code_836X;
  long blank_return_code_835X;
  long blank_return_code_834X;
  long blank_return_code_833X;
  char * a_832X;
  long size_831X;
  char * start_830X;
  char * addr_829X;
  long value_828X;
  char * stack_827X;
  char * addr_826X;
  long val_825X;
  long index_824X;
  long v_823X;
  long foo_822X;
  long table_821X;
  long i_820X;
  long v_819X;
  long v_818X;
  long exported_bindings_817X;
  long imported_bindings_816X;
  long n_815X;
  long symbols_814X;
  long maybe_813X;
  long maybe_812X;
  long v_811X;
  long symbol_table_810X;
 {  symbol_table_810X = s48_initial_symbols();
  if ((symbol_table_810X == 1)) {
    make_hash_tableAgc_return_tag = 0;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_0:
    v_811X = make_hash_tableAgc0_return_value;
    Sthe_symbol_tableS = v_811X;
    maybe_812X = s48_find_all(1);
    if ((maybe_812X == 1)) {s48_collect();
      maybe_813X = s48_find_all(1);
      if ((maybe_813X == 1)) {
        ps_error("insufficient heap space to build symbol table", 0);
        arg0K0 = maybe_813X;
        goto L27321;}
      else {
        arg0K0 = maybe_813X;
        goto L27321;}}
    else {
      arg0K0 = maybe_812X;
      goto L27321;}}
  else {
    Sthe_symbol_tableS = symbol_table_810X;
    goto L27985;}}
 L27321: {
  symbols_814X = arg0K0;
  n_815X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + symbols_814X))) + -4))))>>8))))>>2);
  arg0K0 = 0;
  goto L27342;}
 L27985: {
  imported_bindings_816X = s48_initial_imported_bindings();
  exported_bindings_817X = s48_initial_exported_bindings();
  if ((1 == imported_bindings_816X)) {
    make_hash_tableAgc_return_tag = 1;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_1:
    v_818X = make_hash_tableAgc0_return_value;
    Simported_bindingsS = v_818X;
    make_hash_tableAgc_return_tag = 2;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_2:
    v_819X = make_hash_tableAgc0_return_value;
    Sexported_bindingsS = v_819X;
    goto L27991;}
  else {
    Simported_bindingsS = imported_bindings_816X;
    Sexported_bindingsS = exported_bindings_817X;
    goto L27991;}}
 L27342: {
  i_820X = arg0K0;
  if ((i_820X == n_815X)) {
    goto L27985;}
  else {
    table_821X = Sthe_symbol_tableS;
    foo_822X = *((long *) ((((char *) (-3 + symbols_814X))) + (((i_820X)<<2))));
    v_823X = Haction4930((*((long *) (((char *) (-3 + foo_822X))))));
    index_824X = 1023 & v_823X;
    val_825X = *((long *) ((((char *) (-3 + table_821X))) + (((index_824X)<<2))));
    addr_826X = (((char *) (-3 + foo_822X))) + 4;S48_WRITE_BARRIER(foo_822X, addr_826X, val_825X);
    *((long *) addr_826X) = (long) (val_825X);
    if ((3 == (3 & foo_822X))) {
      arg0K0 = (-4 & foo_822X);
      goto L26667;}
    else {
      arg0K0 = foo_822X;
      goto L26667;}}}
 L27991: {
  if ((stack_size_809X < 8128)) {
    stack_827X = (char *)malloc(32512);
    if ((stack_827X == NULL)) {
      ps_error("out of memory, unable to continue", 0);
      arg2K0 = stack_827X;
      arg0K1 = 8128;
      goto L22234;}
    else {
      arg2K0 = stack_827X;
      arg0K1 = 8128;
      goto L22234;}}
  else {
    arg2K0 = stack_begin_808X;
    arg0K1 = stack_size_809X;
    goto L22234;}}
 L26667: {
  value_828X = arg0K0;
  addr_829X = (((char *) (-3 + table_821X))) + (((index_824X)<<2));S48_WRITE_BARRIER(table_821X, addr_829X, value_828X);
  *((long *) addr_829X) = (long) (value_828X);
  arg0K0 = (1 + i_820X);
  goto L27342;}
 L22234: {
  start_830X = arg2K0;
  size_831X = arg0K1;
  Sstack_beginS = start_830X;
  Sstack_endS = (start_830X + (((size_831X)<<2)));
  Sreal_stack_limitS = ((Sstack_beginS) + 512);
  s48_Sstack_limitS = (Sreal_stack_limitS);
  SstackS = (Sstack_endS);
  ScontS = (((char *) 1));
  arg2K0 = start_830X;
  goto L22264;}
 L22264: {
  a_832X = arg2K0;
  if ((a_832X == (Sstack_endS))) {s48_make_availableAgc(20);
    blank_return_code_833X = make_blank_return_code(71, 65535, 0, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_833X))) + 15)) = (unsigned char) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    ScontS = (SstackS);
    *((long *) (ScontS)) = (long) ((((long) ((((char *) (-3 + blank_return_code_833X))) + 13))));
    Sbottom_of_stackS = (ScontS);
    Sheap_continuationS = 1;s48_make_availableAgc(120);
    blank_return_code_834X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_834X))) + 15)) = (unsigned char) (163);
    Sinterrupted_byte_opcode_return_codeS = blank_return_code_834X;
    blank_return_code_835X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_835X))) + 15)) = (unsigned char) (164);
    Sinterrupted_native_call_return_codeS = blank_return_code_835X;
    blank_return_code_836X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_836X))) + 15)) = (unsigned char) (165);
    Snative_poll_return_codeS = blank_return_code_836X;
    blank_return_code_837X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_837X))) + 15)) = (unsigned char) (159);
    Sexception_return_codeS = blank_return_code_837X;
    blank_return_code_838X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_838X))) + 15)) = (unsigned char) (160);
    Snative_exception_return_codeS = blank_return_code_838X;
    blank_return_code_839X = make_blank_return_code(70, 65535, 1, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_839X))) + 15)) = (unsigned char) (0);
    Scall_with_values_return_codeS = blank_return_code_839X;s48_make_availableAgc(32);s48_bignum_make_cached_constants();
    addr_840X = s48_allocate_tracedAgc(8);
    if ((addr_840X == NULL)) {
      arg0K0 = 1;
      goto L28042;}
    else {
      *((long *) addr_840X) = (long) (1034);
      arg0K0 = (3 + (((long) (addr_840X + 4))));
      goto L28042;}}
  else {
    *((long *) a_832X) = (long) (252645135);
    arg2K0 = (a_832X + 4);
    goto L22264;}}
 L28042: {
  vector_841X = arg0K0;
  if ((1 == vector_841X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_841X;
    goto L28029;}
  else {
    arg0K0 = vector_841X;
    goto L28029;}}
 L28029: {
  v_842X = arg0K0;
  Sempty_logS = v_842X;
  x_843X = Sempty_logS;
  addr_844X = ((char *) (-3 + x_843X));S48_WRITE_BARRIER(x_843X, addr_844X, 1);
  *((long *) addr_844X) = (long) (1);
  return;}
 make_hash_tableAgc: {
{ addr_845X = s48_allocate_tracedAgc(4100);
  if ((addr_845X == NULL)) {
    arg0K0 = 1;
    goto L12711;}
  else {
    *((long *) addr_845X) = (long) (1048586);
    arg0K0 = (3 + (((long) (addr_845X + 4))));
    goto L12711;}}
 L12711: {
  vector_846X = arg0K0;
  if ((1 == vector_846X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_846X;
    goto L12699;}
  else {
    arg0K0 = vector_846X;
    goto L12699;}}
 L12699: {
  table_847X = arg0K0;
  arg0K0 = 0;
  goto L12734;}
 L12734: {
  i_848X = arg0K0;
  if ((1024 == i_848X)) {
    make_hash_tableAgc0_return_value = table_847X;
    goto make_hash_tableAgc_return;}
  else {
    addr_849X = (((char *) (-3 + table_847X))) + (((i_848X)<<2));S48_WRITE_BARRIER(table_847X, addr_849X, 1);
    *((long *) addr_849X) = (long) (1);
    arg0K0 = (1 + i_848X);
    goto L12734;}}
 make_hash_tableAgc_return:
  switch (make_hash_tableAgc_return_tag) {
  case 0: goto make_hash_tableAgc_return_0;
  case 1: goto make_hash_tableAgc_return_1;
  default: goto make_hash_tableAgc_return_2;
  }}

}
void s48_post_gc_cleanup(void)
{

 {  (Spost_gc_cleanupS)();
  return;}
}
void s48_gc_root(void)
{

 {  (Sgc_root_procS)();
  return;}
}
long s48_restart(long proc_850X, long nargs_851X)
{
  char *arg4K0;
  char * arg2K1;
  char * arg2K0;
  char arg3K3;
  char arg3K1;
  char arg3K0;
  char arg3K2;
  long arg0K4;
  long arg0K3;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char *merged_arg4K0;
  FILE * merged_arg5K2;
  char merged_arg3K1;
  char * merged_arg2K0;
  long merged_arg0K3;
  long merged_arg0K2;
  long merged_arg0K1;
  long merged_arg0K0;

  int move_args_above_contB_return_tag;
  int s48_pop_interrupt_state_return_tag;
  int get_error_string_return_tag;
  long get_error_string0_return_value;
  int copy_continuation_from_heapB_return_tag;
  char * copy_continuation_from_heapB0_return_value;
  int okay_argument_list_return_tag;
  char okay_argument_list0_return_value;
  long okay_argument_list1_return_value;
  int get_current_port_return_tag;
  long get_current_port0_return_value;
  int make_closure_return_tag;
  long make_closure0_return_value;
  int pending_interruptP_return_tag;
  char pending_interruptP0_return_value;
  int proposal_d_read_return_tag;
  long proposal_d_read0_return_value;
  int proposal_d_write_return_tag;
  int shift_space_return_tag;
  long shift_space0_return_value;
  int pop_continuationB_return_tag;
  int copy_listSAgc_return_tag;
  long copy_listSAgc0_return_value;
  int pop_args_GlistSAgc_return_tag;
  long pop_args_GlistSAgc0_return_value;
  int ensure_stack_spaceB_return_tag;
  char ensure_stack_spaceB0_return_value;
  int push_list_return_tag;
  long push_list0_return_value;
  int rest_list_setupAgc_return_tag;
  int find_template_return_tag;
  long find_template0_return_value;
  int maybe_write_template_return_tag;
  char maybe_write_template0_return_value;
  int loseD0_return_tag;
  long nargs_852X;
  long status_853X;
  long cont_854X;
  long stack_arg_count_855X;
  long list_856X;
  long marker_857X;
  long a_858X;
  long b_859X;
  long stob_860X;
  long index_861X;
  long stob_862X;
  long index_863X;
  long value_864X;
  long x_865X;
  long n_866X;
  long list_867X;
  long length_868X;
  long start_869X;
  long count_870X;
  long need_871X;
  long list_872X;
  long count_873X;
  long wants_stack_args_874X;
  long stack_arg_count_875X;
  long list_args_876X;
  long list_arg_count_877X;
  char * start_878X;
  long count_879X;
  long code_vector_880X;
  long template_881X;
  char not_firstP_882X;
  FILE * out_883X;
  char *message_884X;
  char * arg_2395X;
  char * loc_2394X;
  char * top_of_args_2393X;
  char * addr_2392X;
  long x_2391X;
  long proposal_2390X;
  long p_2389X;
  long shifted_2388X;
  long j_2387X;
  long bits_2386X;
  long c_2385X;
  long i_2384X;
  long new_2383X;
  char * addr_2382X;
  long len_2381X;
  long len_2380X;
  long x_2379X;
  char *string_2378X;
  char * new_stack_2377X;
  char * new_cont_2376X;
  long stack_size_2375X;
  char move_slowP_2374X;
  long slow_2373X;
  long len_2372X;
  long fast_2371X;
  char *v_2370X;
  long v_2369X;
  long obj_2368X;
  long env_2367X;
  long thread_2366X;
  long x_2365X;
  char * addr_2364X;
  long interrupt_bit_2363X;
  long status_2362X;
  long channel_2361X;
  long type_2360X;
  long v_2359X;
  long next_stob_2358X;
  long i_2357X;
  long log_2356X;
  char * addr_2355X;
  long next_stob_2354X;
  long i_2353X;
  long log_2352X;
  long v_2351X;
  long v_2350X;
  long n_2349X;
  long extra_2348X;
  long x_size_2347X;
  long v_2346X;
  long v_2345X;
  long size_2344X;
  char * pointer_2343X;
  char * cont_2342X;
  char * addr_2341X;
  long x_2340X;
  char * addr_2339X;
  long a_2338X;
  long last_2337X;
  long l_2336X;
  long x_2335X;
  char * addr_2334X;
  long a_2333X;
  long value_2332X;
  long x_2331X;
  char * addr_2330X;
  long a_2329X;
  long count_2328X;
  long args_2327X;
  long value_2326X;
  char interruptP_2325X;
  long x_2324X;
  long l_2323X;
  long i_2322X;
  long list_2321X;
  char v_2320X;
  long x_2319X;
  long v_2318X;
  long x_2317X;
  long v_2316X;
  long count_2315X;
  long x_2314X;
  long next_2313X;
  long i_2312X;
  long obj_2311X;
  long obj_2310X;
  long name_2309X;
  long v_2308X;
  long why_2307X;
  long size_2306X;
  char * pointer_2305X;
  char v_2304X;
  long v_2303X;
  long v_2302X;
  char v_2301X;
  long v_2300X;
  char not_firstP_2299X;
  long cont_2298X;
  long size_2297X;
  char * pointer_2296X;
  long v_2295X;
  char * pointer_2294X;
  char * code_pointer_2293X;
  long cont_2292X;
  char not_firstP_2291X;
  char * cont_2290X;
  char not_firstP_2289X;
  long template_2288X;
  FILE * out_2287X;
  long current_code_2286X;
  long v_2285X;
  long n_2284X;
  char v_2283X;
  long v_2282X;
  long v_2281X;
  long n_2280X;
  char v_2279X;
  long v_2278X;
  long y_2277X;
  long x_2276X;
  long rem_2275X;
  long quot_2274X;
  char div_by_zeroP_2273X;
  long v_2272X;
  long n_2271X;
  char v_2270X;
  long v_2269X;
  long v_2268X;
  long n_2267X;
  char v_2266X;
  long v_2265X;
  long v_2264X;
  long v_2263X;
  long stob_2262X;
  long v_2261X;
  long stob_2260X;
  char * addr_2259X;
  long x_2258X;
  char * addr_2257X;
  char * addr_2256X;
  long value_2255X;
  char * addr_2254X;
  long value_2253X;
  long copies_2252X;
  long v_2251X;
  long n_2250X;
  char v_2249X;
  long v_2248X;
  long n_2247X;
  char v_2246X;
  char * rem_2245X;
  char * quot_2244X;
  char div_by_zeroP_2243X;
  char * y_2242X;
  char *v_2241X;
  long link_2240X;
  long verify_2239X;
  long value_2238X;
  long copies_2237X;
  long stob_2236X;
  long i_2235X;
  long val_2234X;
  char * v_2233X;
  long value_2232X;
  char * x_2231X;
  long val_2230X;
  long v_2229X;
  char * v_2228X;
  char * addr_2227X;
  long val_2226X;
  char * addr_2225X;
  long value_2224X;
  long len_2223X;
  long s2_2222X;
  long foo_2221X;
  long previous_foo_2220X;
  char * addr_2219X;
  long verify_2218X;
  long value_2217X;
  long log_2216X;
  long stob_2215X;
  long i_2214X;
  long x_2213X;
  long status_2212X;
  long v_2211X;
  char * addr_2210X;
  long value_2209X;
  long val_2208X;
  long val_2207X;
  long n_2206X;
  char v_2205X;
  char * external_bignum_2204X;
  char * v_2203X;
  long value_2202X;
  long extra1_2201X;
  long val_2200X;
  long v_2199X;
  char * v_2198X;
  long val_2197X;
  long v_2196X;
  char * v_2195X;
  long x_2194X;
  long val_2193X;
  long v_2192X;
  char * v_2191X;
  char * addr_2190X;
  long value_2189X;
  long offset_2188X;
  long i_2187X;
  long count_2186X;
  char * addr_2185X;
  long value_2184X;
  long offset_2183X;
  long i_2182X;
  long count_2181X;
  long n_2180X;
  char * addr_2179X;
  long val_2178X;
  char * addr_2177X;
  long shifted_2176X;
  long j_2175X;
  long bits_2174X;
  long bucket_2173X;
  char * addr_2172X;
  char * addr_2171X;
  long value_2170X;
  char * addr_2169X;
  char * addr_2168X;
  char * addr_2167X;
  long value_2166X;
  char * addr_2165X;
  char * addr_2164X;
  long value_2163X;
  long proposal_2162X;
  long entry_2161X;
  long thing_2160X;
  long log_2159X;
  long copies_2158X;
  char * addr_2157X;
  long x_2156X;
  long val_2155X;
  long v_2154X;
  long reason_2153X;
  long channel_2152X;
  long channel_2151X;
  long link_2150X;
  long val_2149X;
  long x_2148X;
  char * addr_2147X;
  long b_2146X;
  long shifted_2145X;
  long j_2144X;
  long bits_2143X;
  long val_2142X;
  long v_2141X;
  long n_2140X;
  char v_2139X;
  char * external_bignum_2138X;
  char * x_2137X;
  char * v_2136X;
  long v_2135X;
  char * x_2134X;
  long val_2133X;
  long v_2132X;
  char * v_2131X;
  long n_2130X;
  long val_2129X;
  long val_2128X;
  long val_2127X;
  long val_2126X;
  long val_2125X;
  long val_2124X;
  long extra0_2123X;
  long length0_2122X;
  long val_2121X;
  long v_2120X;
  char * v_2119X;
  long x_2118X;
  long val_2117X;
  long v_2116X;
  char * v_2115X;
  long val_2114X;
  long val_2113X;
  long val_2112X;
  char * arg_2111X;
  char * loc_2110X;
  long x_2109X;
  long l_2108X;
  long stack_nargs_2107X;
  long x_2106X;
  long v_2105X;
  long x_2104X;
  long v_2103X;
  long v_2102X;
  long v_2101X;
  long bytes_used_2100X;
  long count_2099X;
  long index_2098X;
  long env_2097X;
  long offset_2096X;
  long i_2095X;
  long bytes_used_2094X;
  long count_2093X;
  long env_2092X;
  long offset_2091X;
  long i_2090X;
  long v_2089X;
  long n_2088X;
  long x_2087X;
  long x_2086X;
  long obj_2085X;
  char * addr_2084X;
  long val_2083X;
  long count_2082X;
  char out_of_spaceP_2081X;
  char encoding_okP_2080X;
  char codec_okP_2079X;
  long count_2078X;
  long value_2077X;
  char incompleteP_2076X;
  char okP_2075X;
  char encoding_okP_2074X;
  long l_2073X;
  long codec_2072X;
  long p_2071X;
  long i_2070X;
  char * addr_2069X;
  long val_2068X;
  char * addr_2067X;
  long val_2066X;
  char * addr_2065X;
  char * addr_2064X;
  long val_2063X;
  char * addr_2062X;
  char * addr_2061X;
  long val_2060X;
  long count_2059X;
  long value_2058X;
  char incompleteP_2057X;
  char okP_2056X;
  char encoding_okP_2055X;
  char * addr_2054X;
  long val_2053X;
  long l_2052X;
  long codec_2051X;
  long p_2050X;
  long i_2049X;
  long x_2048X;
  long x_2047X;
  long d_2046X;
  long i_2045X;
  long l_2044X;
  long link_2043X;
  long index_2042X;
  long v_2041X;
  long table_2040X;
  long val_2039X;
  char x_2038X;
  char minutesP_2037X;
  long vector_2036X;
  char * addr_2035X;
  long x_2034X;
  long verify_2033X;
  long value_2032X;
  long copies_2031X;
  long stob_2030X;
  long i_2029X;
  char * addr_2028X;
  long v_2027X;
  char * addr_2026X;
  char * addr_2025X;
  long val_2024X;
  long x_2023X;
  char * addr_2022X;
  char * addr_2021X;
  long status_2020X;
  char pendingP_2019X;
  char eofP_2018X;
  long got_2017X;
  char v_2016X;
  long count_2015X;
  long start_2014X;
  char waitP_2013X;
  long status_2012X;
  long channel_2011X;
  long v_2010X;
  long v_2009X;
  char x_2008X;
  char temp_2007X;
  long index_2006X;
  long len_2005X;
  long s2_2004X;
  long foo_2003X;
  long i_2002X;
  long i_2001X;
  char * addr_2000X;
  long i_1999X;
  long rest_list_1998X;
  long i_1997X;
  long v_1996X;
  long n_1995X;
  char v_1994X;
  char * external_bignum_1993X;
  char * x_1992X;
  long val_1991X;
  long v_1990X;
  char * v_1989X;
  char * v_1988X;
  long value_1987X;
  long needed_1986X;
  long y_1985X;
  long y_1984X;
  long x_1983X;
  long val_1982X;
  long v_1981X;
  char * v_1980X;
  long val_1979X;
  long v_1978X;
  char * v_1977X;
  long val_1976X;
  long val_1975X;
  long val_1974X;
  long count_1973X;
  long x_1972X;
  char * v_1971X;
  long value_1970X;
  long extra_1969X;
  long length_1968X;
  long x_1967X;
  long val_1966X;
  long c_1965X;
  long b_1964X;
  long val_1963X;
  long c_1962X;
  long b_1961X;
  long val_1960X;
  char b_1959X;
  long val_1958X;
  char b_1957X;
  long val_1956X;
  long v_1955X;
  long v_1954X;
  long v_1953X;
  long val_1952X;
  long v_1951X;
  long v_1950X;
  long v_1949X;
  long val_1948X;
  char b_1947X;
  long result_1946X;
  char x_1945X;
  long c_1944X;
  long b_1943X;
  long val_1942X;
  long val_1941X;
  long val_1940X;
  long c_1939X;
  long mid_c_1938X;
  long v_1937X;
  long v_1936X;
  long lo_c_1935X;
  long hi_b_1934X;
  long hi_a_1933X;
  long lo_b_1932X;
  long lo_a_1931X;
  long b_1930X;
  long val_1929X;
  long args_1928X;
  char * arg_top_1927X;
  long list_arg_count_1926X;
  long list_args_1925X;
  long stack_nargs_1924X;
  long bytes_used_1923X;
  long count_1922X;
  long v_1921X;
  char * arg_1920X;
  char * loc_1919X;
  long v_1918X;
  long v_1917X;
  long v_1916X;
  long bytes_used_1915X;
  long args_1914X;
  long list_args_1913X;
  long stack_nargs_1912X;
  long v_1911X;
  long x_1910X;
  long v_1909X;
  long cont_1908X;
  long size_1907X;
  char * pointer_1906X;
  char * cont_1905X;
  long protocol_skip_1904X;
  long v_1903X;
  char v_1902X;
  char * addr_1901X;
  long value_1900X;
  long offset_1899X;
  long i_1898X;
  long count_1897X;
  char * addr_1896X;
  long value_1895X;
  long offset_1894X;
  long i_1893X;
  long count_1892X;
  long sig_1891X;
  char x_1890X;
  long channel_1889X;
  long arg_count_1888X;
  long obj_1887X;
  long type_1886X;
  long thing_1885X;
  long stuff_1884X;
  char * addr_1883X;
  long val_1882X;
  long count_1881X;
  char out_of_spaceP_1880X;
  char encoding_okP_1879X;
  long i_1878X;
  long count_1877X;
  char out_of_spaceP_1876X;
  char encoding_okP_1875X;
  char codec_okP_1874X;
  long x_1873X;
  long l_1872X;
  long i_1871X;
  long b_1870X;
  long codec_1869X;
  long port_1868X;
  long Kchar_1867X;
  long b_1866X;
  long port_1865X;
  long b_1864X;
  long port_1863X;
  char * addr_1862X;
  long val_1861X;
  long i_1860X;
  long b_1859X;
  long p_1858X;
  long port_1857X;
  long byte_1856X;
  long i_1855X;
  long p_1854X;
  long p_1853X;
  long b_1852X;
  long port_1851X;
  char * addr_1850X;
  long val_1849X;
  long i_1848X;
  long p_1847X;
  long p_1846X;
  long b_1845X;
  long port_1844X;
  long x_1843X;
  long x_1842X;
  long x_1841X;
  long x_1840X;
  long x_1839X;
  long x_1838X;
  char * addr_1837X;
  long value_1836X;
  long list_1835X;
  long head_1834X;
  char move_slowP_1833X;
  long slow_1832X;
  long list_1831X;
  long obj_1830X;
  char * addr_1829X;
  long len_1828X;
  long x_1827X;
  long val_1826X;
  long mseconds_1825X;
  long seconds_1824X;
  long option_1823X;
  long vector_1822X;
  char firstP_1821X;
  long x_1820X;
  long x_1819X;
  long v_1818X;
  long v_1817X;
  long x_1816X;
  long result_1815X;
  char * args_1814X;
  long proc_1813X;
  long name_1812X;
  long rest_list_1811X;
  long x_1810X;
  long x_1809X;
  long x_1808X;
  long x_1807X;
  long value_1806X;
  long vector_1805X;
  long type_1804X;
  char firstP_1803X;
  long vector_1802X;
  char firstP_1801X;
  long x_1800X;
  long x_1799X;
  long x_1798X;
  long status_1797X;
  long reason_1796X;
  long x_1795X;
  char * addr_1794X;
  long next_stob_1793X;
  long i_1792X;
  long x_1791X;
  long v_1790X;
  long next_stob_1789X;
  long i_1788X;
  long value_1787X;
  long x_1786X;
  char * addr_1785X;
  long count_1784X;
  long to_index_1783X;
  long from_index_1782X;
  long copies_1781X;
  long left_1780X;
  long value_1779X;
  long verify_1778X;
  long value_1777X;
  long log_1776X;
  long stob_1775X;
  long i_1774X;
  char * addr_1773X;
  long old_1772X;
  long x_1771X;
  char * addr_1770X;
  long channel_1769X;
  long res_1768X;
  long i_1767X;
  long x_1766X;
  long y_1765X;
  long n_1764X;
  char * addr_1763X;
  long prev_1762X;
  long ch_1761X;
  long x_1760X;
  long val_1759X;
  long x_1758X;
  long val_1757X;
  long val_1756X;
  long x_1755X;
  long val_1754X;
  long x_1753X;
  long x_1752X;
  long v_1751X;
  long v_1750X;
  char *filename_1749X;
  long val_1748X;
  long x_1747X;
  char * addr_1746X;
  char * addr_1745X;
  long x_1744X;
  long val_1743X;
  long x_1742X;
  long bucket_1741X;
  long x_1740X;
  long x_1739X;
  long shifted_1738X;
  long j_1737X;
  long bits_1736X;
  long x_1735X;
  long x_1734X;
  long scalar_value_1733X;
  long j_1732X;
  long bits_1731X;
  long x_1730X;
  long x_1729X;
  long vector_1728X;
  long x_1727X;
  long x_1726X;
  long x_1725X;
  long vector_1724X;
  long new_1723X;
  char * addr_1722X;
  long value_1721X;
  long value_1720X;
  long x_1719X;
  char * addr_1718X;
  long value_1717X;
  long i_1716X;
  long value_1715X;
  long i_1714X;
  long value_1713X;
  long val_1712X;
  long val_1711X;
  long x_1710X;
  long val_1709X;
  long x_1708X;
  long val_1707X;
  long val_1706X;
  char * v_1705X;
  long value_1704X;
  long needed_1703X;
  long y_1702X;
  long x_1701X;
  long result_1700X;
  long x_1699X;
  long x_1698X;
  long x_1697X;
  long count_1696X;
  long value_1695X;
  long val_1694X;
  long val_1693X;
  long val_1692X;
  long x_1691X;
  long val_1690X;
  long x_1689X;
  long n_1688X;
  long x_1687X;
  long x_1686X;
  long v_1685X;
  long x_1684X;
  long n_1683X;
  long a_1682X;
  long a_1681X;
  long val_1680X;
  long val_1679X;
  char b_1678X;
  long val_1677X;
  char b_1676X;
  long val_1675X;
  char b_1674X;
  long val_1673X;
  long Kdouble_1672X;
  char * addr_1671X;
  double value_1670X;
  long value_1669X;
  double x_1668X;
  long value_1667X;
  long a_1666X;
  long Kdouble_1665X;
  char * addr_1664X;
  double y_1663X;
  long value_1662X;
  double x_1661X;
  long value_1660X;
  long val_1659X;
  long v_1658X;
  char * v_1657X;
  long Kdouble_1656X;
  char * addr_1655X;
  double y_1654X;
  long value_1653X;
  double x_1652X;
  long value_1651X;
  long a_1650X;
  long Kdouble_1649X;
  char * addr_1648X;
  double y_1647X;
  long value_1646X;
  double x_1645X;
  long value_1644X;
  long val_1643X;
  long v_1642X;
  char * v_1641X;
  long n_1640X;
  long val_1639X;
  long val_1638X;
  long delta_1637X;
  long delta_1636X;
  long offset_1635X;
  long index_1634X;
  long v_1633X;
  char * arg_top_1632X;
  long args_1631X;
  long count_1630X;
  long size_1629X;
  char * pointer_1628X;
  char * cont_1627X;
  long offset_1626X;
  long cont_1625X;
  long args_1624X;
  long args_1623X;
  long v_1622X;
  long v_1621X;
  long protocol_1620X;
  char * code_pointer_1619X;
  long list_arg_count_1618X;
  long list_args_1617X;
  long stack_nargs_1616X;
  long args_1615X;
  long x_1614X;
  long args_1613X;
  long x_1612X;
  long x_1611X;
  long x_1610X;
  char * addr_1609X;
  long a_1608X;
  long wants_stack_args_1607X;
  long size_1606X;
  char * pointer_1605X;
  char * cont_1604X;
  long proc_1603X;
  long offset_1602X;
  long cont_1601X;
  long protocol_1600X;
  char * code_pointer_1599X;
  long obj_1598X;
  char * addr_1597X;
  long list_args_1596X;
  long follower_1595X;
  long list_1594X;
  long x_1593X;
  long args_1592X;
  long list_arg_count_1591X;
  char okayP_1590X;
  long stack_nargs_1589X;
  long list_args_1588X;
  long obj_1587X;
  long obj_1586X;
  long list_arg_count_1585X;
  long list_args_1584X;
  long stack_arg_count_1583X;
  long obj_1582X;
  char interruptP_1581X;
  long protocol_1580X;
  long code_1579X;
  long template_1578X;
  long obj_1577X;
  long stack_arg_count_1576X;
  long value_1575X;
  long index_1574X;
  long value_1573X;
  long index_1572X;
  long value_1571X;
  long move_1570X;
  long index_1569X;
  long value_1568X;
  long move_1567X;
  long n_1566X;
  long value_1565X;
  long i_1564X;
  char * addr_1563X;
  long value_1562X;
  long offset_1561X;
  long i_1560X;
  long count_1559X;
  long total_count_1558X;
  long offset_1557X;
  long i_1556X;
  long new_env_1555X;
  char * addr_1554X;
  long value_1553X;
  long offset_1552X;
  long i_1551X;
  long count_1550X;
  long total_count_1549X;
  long offset_1548X;
  long i_1547X;
  long new_env_1546X;
  long v_1545X;
  long x_1544X;
  long x_1543X;
  long args_1542X;
  long length_1541X;
  char okayP_1540X;
  long list_args_1539X;
  long stack_nargs_1538X;
  long maybe_cont_1537X;
  long v_1536X;
  long v_1535X;
  long code_1534X;
  long n_1533X;
  char * addr_1532X;
  long x_1531X;
  long x_1530X;
  long x_1529X;
  char v_1528X;
  long return_address_1527X;
  long template_1526X;
  long obj_1525X;
  long stack_arg_count_1524X;
  long tag_1523X;
  long n_1522X;
  char v_1521X;
  char * addr_1520X;
  long next_1519X;
  long channel_1518X;
  long n_1517X;
  long x_1516X;
  long n_1515X;
  long x_1514X;
  long handlers_1513X;
  long m_1512X;
  long i_1511X;
  FILE * out_1510X;
  long x_1509X;
  long x_1508X;
  long val_1507X;
  long v_1506X;
  long v_1505X;
  long v_1504X;
  long v_1503X;
  long v_1502X;
  long v_1501X;
  long v_1500X;
  long v_1499X;
  long v_1498X;
  long v_1497X;
  long v_1496X;
  long v_1495X;
  long v_1494X;
  long v_1493X;
  long count_1492X;
  long value_1491X;
  char incompleteP_1490X;
  char okP_1489X;
  char encoding_okP_1488X;
  long count_1487X;
  long start_1486X;
  long encoding_1485X;
  long arg4_1484X;
  long arg3_1483X;
  long arg2_1482X;
  long count_1481X;
  long value_1480X;
  char incompleteP_1479X;
  char okP_1478X;
  char encoding_okP_1477X;
  long count_1476X;
  long start_1475X;
  long encoding_1474X;
  long arg4_1473X;
  long arg3_1472X;
  long arg2_1471X;
  long count_1470X;
  char out_of_spaceP_1469X;
  char okP_1468X;
  char encoding_okP_1467X;
  long count_1466X;
  long start_1465X;
  long value_1464X;
  long encoding_1463X;
  long arg5_1462X;
  long arg4_1461X;
  long arg3_1460X;
  long arg2_1459X;
  long count_1458X;
  char out_of_spaceP_1457X;
  char okP_1456X;
  char encoding_okP_1455X;
  long count_1454X;
  long start_1453X;
  long value_1452X;
  long encoding_1451X;
  long arg5_1450X;
  long arg4_1449X;
  long arg3_1448X;
  long arg2_1447X;
  long x_1446X;
  long v_1445X;
  long len_1444X;
  long value_1443X;
  long index_1442X;
  long arg4_1441X;
  long arg3_1440X;
  long arg2_1439X;
  long x_1438X;
  long v_1437X;
  long v_1436X;
  long len_1435X;
  long index_1434X;
  long arg3_1433X;
  long arg2_1432X;
  long list_1431X;
  long arg2_1430X;
  long x_1429X;
  long n_1428X;
  long arg2_1427X;
  long len_1426X;
  long x_1425X;
  long obj_1424X;
  long arg2_1423X;
  long x_1422X;
  long arg2_1421X;
  long x_1420X;
  long status_1419X;
  long value_1418X;
  long key_1417X;
  long arg2_1416X;
  long x_1415X;
  long val_1414X;
  char *string_1413X;
  long key_1412X;
  long x_1411X;
  long mseconds_1410X;
  long seconds_1409X;
  long mseconds_1408X;
  long seconds_1407X;
  long x_1406X;
  long other_1405X;
  long option_1404X;
  long arg2_1403X;
  long x_1402X;
  long arg2_1401X;
  long x_1400X;
  long arg2_1399X;
  long x_1398X;
  long rest_list_1397X;
  long p_1396X;
  long nargs_1395X;
  long p_1394X;
  long x_1393X;
  long arg2_1392X;
  long x_1391X;
  long p_1390X;
  long v_1389X;
  long v_1388X;
  long template_1387X;
  long return_address_1386X;
  long v_1385X;
  long p_1384X;
  long v_1383X;
  long v_1382X;
  long code_1381X;
  long pc_1380X;
  long p_1379X;
  long old_1378X;
  long temp_1377X;
  long obj_1376X;
  long opcode_1375X;
  long exception_1374X;
  long code_1373X;
  long data_1372X;
  long opcode_1371X;
  long pc_1370X;
  long size_1369X;
  long exception_1368X;
  long code_1367X;
  long data_1366X;
  long temp_1365X;
  long obj_1364X;
  long val_1363X;
  long x_1362X;
  long x_1361X;
  long type_1360X;
  long x_1359X;
  long x_1358X;
  long bytes_1357X;
  long x_1356X;
  long other_1355X;
  long key_1354X;
  long arg2_1353X;
  long x_1352X;
  char * addr_1351X;
  long b_1350X;
  long x_1349X;
  char * addr_1348X;
  long proc_1347X;
  long arg2_1346X;
  long x_1345X;
  long obj_1344X;
  long status_1343X;
  long status_1342X;
  long status_1341X;
  long status_1340X;
  long status_1339X;
  long status_1338X;
  FILE * port_1337X;
  long undumpables_1336X;
  long obj_1335X;
  long arg4_1334X;
  long arg3_1333X;
  long arg2_1332X;
  long x_1331X;
  long log_1330X;
  long index_1329X;
  long x_1328X;
  long len_1327X;
  long byte_1326X;
  long index_1325X;
  long arg3_1324X;
  long arg2_1323X;
  long log_1322X;
  long index_1321X;
  long x_1320X;
  long len_1319X;
  long index_1318X;
  long arg2_1317X;
  long v_1316X;
  long count_1315X;
  long to_index_1314X;
  long from_index_1313X;
  long arg5_1312X;
  long arg4_1311X;
  long arg3_1310X;
  long arg2_1309X;
  long v_1308X;
  long x_1307X;
  long offset_1306X;
  long type_1305X;
  long stob_1304X;
  long log_1303X;
  long proposal_1302X;
  long proposal_1301X;
  char * addr_1300X;
  long next_1299X;
  long channel_1298X;
  long n_1297X;
  char * addr_1296X;
  long head_1295X;
  long channel_1294X;
  long obj_1293X;
  long x_1292X;
  long status_1291X;
  char readyP_1290X;
  long channel_1289X;
  long obj_1288X;
  long x_1287X;
  char x_1286X;
  long x_1285X;
  long param_1284X;
  long x_1283X;
  char * addr_1282X;
  char * addr_1281X;
  long status_1280X;
  char pendingP_1279X;
  long got_1278X;
  char v_1277X;
  long count_1276X;
  long start_1275X;
  long arg4_1274X;
  long arg3_1273X;
  long arg2_1272X;
  long x_1271X;
  long arg5_1270X;
  long arg4_1269X;
  long arg3_1268X;
  long arg2_1267X;
  long x_1266X;
  long status_1265X;
  long channel_1264X;
  long obj_1263X;
  long x_1262X;
  long close_silentlyP_1261X;
  long mode_1260X;
  long arg4_1259X;
  long arg3_1258X;
  long arg2_1257X;
  long x_1256X;
  long x_1255X;
  long x_1254X;
  long arg2_1253X;
  long descriptor_1252X;
  long x_1251X;
  long obj_1250X;
  long link_1249X;
  long index_1248X;
  long v_1247X;
  long string_1246X;
  long table_1245X;
  long obj_1244X;
  long y_1243X;
  long y_1242X;
  long count_1241X;
  long to_index_1240X;
  long from_index_1239X;
  long arg5_1238X;
  long arg4_1237X;
  long arg3_1236X;
  long arg2_1235X;
  long len_1234X;
  long Kchar_1233X;
  long index_1232X;
  long arg3_1231X;
  long arg2_1230X;
  long len_1229X;
  long index_1228X;
  long arg2_1227X;
  long x_1226X;
  long obj_1225X;
  char * addr_1224X;
  long len_1223X;
  long init_1222X;
  long len_1221X;
  long arg2_1220X;
  long len_1219X;
  long Kchar_1218X;
  long index_1217X;
  long arg3_1216X;
  long arg2_1215X;
  long len_1214X;
  long index_1213X;
  long arg2_1212X;
  long obj_1211X;
  long x_1210X;
  char * addr_1209X;
  long init_1208X;
  long len_1207X;
  long arg2_1206X;
  char * addr_1205X;
  long v_1204X;
  long index_1203X;
  long len_1202X;
  long type_1201X;
  long value_1200X;
  long arg3_1199X;
  long arg2_1198X;
  long v_1197X;
  long v_1196X;
  long index_1195X;
  long len_1194X;
  long type_1193X;
  long index_1192X;
  long arg2_1191X;
  char * addr_1190X;
  long len_1189X;
  long len_1188X;
  long type_1187X;
  long init_1186X;
  long arg2_1185X;
  long v_1184X;
  long offset_1183X;
  long type_1182X;
  long value_1181X;
  long arg2_1180X;
  long offset_1179X;
  long type_1178X;
  long stob_1177X;
  long rest_list_1176X;
  long stack_nargs_1175X;
  long p_1174X;
  long new_1173X;
  char * addr_1172X;
  long len_1171X;
  long type_1170X;
  long len_1169X;
  long p_1168X;
  long new_1167X;
  char * addr_1166X;
  long len_1165X;
  long type_1164X;
  long len_1163X;
  long type_1162X;
  long stob_1161X;
  long type_1160X;
  long x_1159X;
  long x_1158X;
  long x_1157X;
  long x_1156X;
  long x_1155X;
  long x_1154X;
  long x_1153X;
  long x_1152X;
  long arg2_1151X;
  long x_1150X;
  long arg2_1149X;
  long x_1148X;
  long v_1147X;
  long v_1146X;
  long y_1145X;
  long arg2_1144X;
  long y_1143X;
  long arg2_1142X;
  long y_1141X;
  long arg2_1140X;
  long y_1139X;
  long arg2_1138X;
  long x_1137X;
  long x_1136X;
  long x_1135X;
  long x_1134X;
  long arg2_1133X;
  long x_1132X;
  long arg2_1131X;
  long x_1130X;
  long arg2_1129X;
  long x_1128X;
  long x_1127X;
  long x_1126X;
  long x_1125X;
  long x_1124X;
  long x_1123X;
  long x_1122X;
  long x_1121X;
  long x_1120X;
  long x_1119X;
  long x_1118X;
  long n_1117X;
  long n_1116X;
  long n_1115X;
  long n_1114X;
  long n_1113X;
  long a_1112X;
  long val_1111X;
  long y_1110X;
  long arg2_1109X;
  long b_1108X;
  long a_1107X;
  long val_1106X;
  long y_1105X;
  long arg2_1104X;
  long y_1103X;
  long arg2_1102X;
  long y_1101X;
  long arg2_1100X;
  long y_1099X;
  long arg2_1098X;
  long y_1097X;
  long arg2_1096X;
  long y_1095X;
  long arg2_1094X;
  long b_1093X;
  long a_1092X;
  long y_1091X;
  long arg2_1090X;
  long x_1089X;
  long y_1088X;
  long arg2_1087X;
  long b_1086X;
  long a_1085X;
  long y_1084X;
  long arg2_1083X;
  long x_1082X;
  long y_1081X;
  long arg2_1080X;
  long x_1079X;
  long x_1078X;
  long n_1077X;
  long n_1076X;
  long x_1075X;
  long x_1074X;
  long arg2_1073X;
  long rest_list_1072X;
  long x_1071X;
  long rest_list_1070X;
  long stack_nargs_1069X;
  long arg1_1068X;
  long arg0_1067X;
  long arg0_1066X;
  long rest_list_1065X;
  long stack_nargs_1064X;
  long x_1063X;
  long index_1062X;
  long val_1061X;
  long max_1060X;
  long p_1059X;
  char * code_pointer_1058X;
  long return_pointer_offset_1057X;
  long nargs_1056X;
  long code_1055X;
  long template_1054X;
  long rest_list_1053X;
  long stack_nargs_1052X;
  long p_1051X;
  long p_1050X;
  long cont_1049X;
  long v_1048X;
  long rest_list_1047X;
  long stack_nargs_1046X;
  long p_1045X;
  long x_1044X;
  long args_1043X;
  char * code_pointer_1042X;
  long return_pointer_offset_1041X;
  long length_1040X;
  char okayP_1039X;
  long stack_nargs_1038X;
  long list_args_1037X;
  char v_1036X;
  char v_1035X;
  char * code_pointer_1034X;
  long return_pointer_offset_1033X;
  long stack_arg_count_1032X;
  char * code_pointer_1031X;
  long stack_arg_count_1030X;
  long v_1029X;
  long n_moves_1028X;
  long x_1027X;
  long n_moves_1026X;
  long x_1025X;
  long x_1024X;
  long x_1023X;
  long x_1022X;
  long x_1021X;
  long value_1020X;
  long x_1019X;
  long closure_1018X;
  char * addr_1017X;
  long len_1016X;
  long size_1015X;
  long free_count_1014X;
  char * addr_1013X;
  long x_1012X;
  long value_1011X;
  char * addr_1010X;
  long x_1009X;
  long x_1008X;
  long template_1007X;
  long new_env_1006X;
  char * addr_1005X;
  long len_1004X;
  long closures_1003X;
  long total_count_1002X;
  long template_1001X;
  long new_env_1000X;
  char * addr_999X;
  long len_998X;
  long closures_997X;
  long total_count_996X;
  char * addr_995X;
  long val_994X;
  long x_993X;
  long location_992X;
  long index_991X;
  long template_990X;
  long location_989X;
  long index_988X;
  long template_987X;
  long x_986X;
  long x_985X;
  long n_984X;
  char * code_pointer_983X;
  long v_982X;
  long code_981X;
  long n_980X;
  char * addr_979X;
  long x_978X;
  long x_977X;
  long pc_976X;
  long code_975X;
  long x_974X;
  char v_973X;
  char v_972X;
  long tag_971X;
  long n_970X;
  long v_969X;
  char v_968X;
  long x_967X;
  long x_966X;
  long x_965X;
  long x_964X;
  long x_963X;
  long x_962X;
  long x_961X;
  long x_960X;
  long spec_959X;
  long needed_stack_space_958X;
  long template_957X;
  long used_956X;
  long code_955X;
  long v_954X;
  long v_953X;
  long code_952X;
  long n_951X;
  char * addr_950X;
  long x_949X;
  long x_948X;
  long x_947X;
  long protocol_skip_946X;
  long final_stack_arg_count_945X;
  char interruptP_944X;
  long obj_943X;
  long template_942X;
  char v_941X;
  char v_940X;
  long skip_939X;
  long skip_938X;
  long x_937X;
  long x_936X;
  long x_935X;
  long x_934X;
  long x_933X;
  long x_932X;
  long x_931X;
  long x_930X;
  long spec_929X;
  long template_928X;
  long used_927X;
  long envUtemp_offset_926X;
  long code_925X;
  long retval_924X;
  long handlers_923X;
  long opcode_922X;
  long nargs_921X;
  long v_920X;
  long v_919X;
  long v_918X;
  long v_917X;
  long index_916X;
  long length_915X;
  long v_914X;
  long v_913X;
  long v_912X;
  long v_911X;
  long v_910X;
  long v_909X;
  long wants_stack_args_908X;
  long v_907X;
  long v_906X;
  long v_905X;
  long v_904X;
  long skip_903X;
  char nativeP_902X;
  long stack_space_901X;
  long protocol_900X;
  long v_899X;
  long x_898X;
  long args_897X;
  long v_896X;
  long list_arg_count_895X;
  long list_args_894X;
  long stack_arg_count_893X;
  long exception_892X;
  long total_arg_count_891X;
  long code_890X;
  long handler_tag_889X;
  long list_arg_count_888X;
  long list_args_887X;
  long stack_arg_count_886X;
  long obj_885X;
 {  if ((3 == (3 & proc_850X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_850X))) + -4))))>>2))))) {
      SvalS = proc_850X;
      obj_885X = SvalS;
      if ((3 == (3 & obj_885X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_885X))) + -4))))>>2))))) {
          arg0K0 = nargs_851X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59401;}
        else {
          arg0K0 = 3;
          arg0K1 = nargs_851X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L29043;}}
      else {
        arg0K0 = 3;
        arg0K1 = nargs_851X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L29043;}}
    else {
      goto L29203;}}
  else {
    goto L29203;}}
 L59401: {
  stack_arg_count_886X = arg0K0;
  list_args_887X = arg0K1;
  list_arg_count_888X = arg0K2;
  handler_tag_889X = arg0K3;
  code_890X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS))))))))));
  total_arg_count_891X = stack_arg_count_886X + list_arg_count_888X;
  arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_890X))) + 1)));
  arg0K1 = 64;
  arg3K2 = 0;
  goto L59427;}
 L29043: {
  exception_892X = arg0K0;
  stack_arg_count_893X = arg0K1;
  list_args_894X = arg0K2;
  list_arg_count_895X = arg0K3;
  merged_arg0K0 = list_args_894X;
  merged_arg0K1 = list_arg_count_895X;
  copy_listSAgc_return_tag = 0;
  goto copy_listSAgc;
 copy_listSAgc_return_0:
  v_896X = copy_listSAgc0_return_value;
  merged_arg0K0 = v_896X;
  merged_arg0K1 = stack_arg_count_893X;
  pop_args_GlistSAgc_return_tag = 0;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_0:
  args_897X = pop_args_GlistSAgc0_return_value;push_exception_setupB(exception_892X, 0);
  x_898X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_898X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_897X);
  arg0K0 = 2;
  goto L29353;}
 L29203: {
  ps_error("s48-restart called with non-procedure", 1, proc_850X);
  return v_899X;}
 L59427: {
  protocol_900X = arg0K0;
  stack_space_901X = arg0K1;
  nativeP_902X = arg3K2;
  if ((69 == protocol_900X)) {
    if ((total_arg_count_891X < 3)) {
      skip_903X = *((unsigned char *) ((((char *) (-3 + code_890X))) + (3 + total_arg_count_891X)));
      if ((0 == skip_903X)) {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L29043;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_904X;
            goto L63891;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_905X;
            goto L63891;}}}
      else {
        merged_arg0K0 = list_args_887X;
        merged_arg0K1 = list_arg_count_888X;
        push_list_return_tag = 0;
        goto push_list;
       push_list_return_0:
        arg0K0 = code_890X;
        arg0K1 = 6;
        arg0K2 = skip_903X;
        arg0K3 = (*((long *) (((char *) (-3 + (SvalS))))));
        goto L28169;}}
    else {
      if ((0 == (*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))) {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L29043;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_906X;
            goto L63891;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_907X;
            goto L63891;}}}
      else {
        arg0K0 = 6;
        goto L59470;}}}
  else {
    if ((63 < protocol_900X)) {
      if ((65 == protocol_900X)) {
        wants_stack_args_908X = ((((*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + 3)));
        if ((total_arg_count_891X < wants_stack_args_908X)) {
          if ((-1 == handler_tag_889X)) {
            arg0K0 = 4;
            arg0K1 = stack_arg_count_886X;
            arg0K2 = list_args_887X;
            arg0K3 = list_arg_count_888X;
            goto L29043;}
          else {
            if ((handler_tag_889X < 0)) {
              ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
              arg0K0 = v_909X;
              goto L63891;}
            else {
              ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
              arg0K0 = v_910X;
              goto L63891;}}}
        else {
          merged_arg0K0 = wants_stack_args_908X;
          merged_arg0K1 = stack_arg_count_886X;
          merged_arg0K2 = list_args_887X;
          merged_arg0K3 = list_arg_count_888X;
          rest_list_setupAgc_return_tag = 0;
          goto rest_list_setupAgc;
         rest_list_setupAgc_return_0:
          arg0K0 = 4;
          goto L59431;}}
      else {
        if ((68 == protocol_900X)) {
          if ((total_arg_count_891X < (*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))) {
            if ((-1 == handler_tag_889X)) {
              arg0K0 = 4;
              arg0K1 = stack_arg_count_886X;
              arg0K2 = list_args_887X;
              arg0K3 = list_arg_count_888X;
              goto L29043;}
            else {
              if ((handler_tag_889X < 0)) {
                ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                arg0K0 = v_911X;
                goto L63891;}
              else {
                ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                arg0K0 = v_912X;
                goto L63891;}}}
          else {
            arg0K0 = 3;
            goto L59470;}}
        else {
          if ((127 < protocol_900X)) {
            arg0K0 = (127 & protocol_900X);
            arg0K1 = stack_space_901X;
            arg3K2 = 1;
            goto L59427;}
          else {
            if ((64 == protocol_900X)) {
              if (((((((*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + 3)))) == total_arg_count_891X)) {
                if ((0 == list_arg_count_888X)) {
                  arg0K0 = 4;
                  goto L59431;}
                else {
                  merged_arg0K0 = list_args_887X;
                  merged_arg0K1 = list_arg_count_888X;
                  push_list_return_tag = 1;
                  goto push_list;
                 push_list_return_1:
                  arg0K0 = 4;
                  goto L59431;}}
              else {
                if ((-1 == handler_tag_889X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_886X;
                  arg0K2 = list_args_887X;
                  arg0K3 = list_arg_count_888X;
                  goto L29043;}
                else {
                  if ((handler_tag_889X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                    arg0K0 = v_913X;
                    goto L63891;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                    arg0K0 = v_914X;
                    goto L63891;}}}}
            else {
              if ((67 == protocol_900X)) {
                length_915X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_890X))) + -4))))>>8);
                index_916X = -2 + length_915X;
                arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_890X))) + (-3 + length_915X))));
                arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_890X))) + index_916X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + (1 + index_916X)))));
                arg3K2 = nativeP_902X;
                goto L59427;}
              else {
                ps_error("unknown protocol", 1, protocol_900X);
                if ((-1 == handler_tag_889X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_886X;
                  arg0K2 = list_args_887X;
                  arg0K3 = list_arg_count_888X;
                  goto L29043;}
                else {
                  if ((handler_tag_889X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                    arg0K0 = v_917X;
                    goto L63891;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                    arg0K0 = v_918X;
                    goto L63891;}}}}}}}}
    else {
      if ((protocol_900X == total_arg_count_891X)) {
        if ((0 == list_arg_count_888X)) {
          arg0K0 = 2;
          goto L59431;}
        else {
          merged_arg0K0 = list_args_887X;
          merged_arg0K1 = list_arg_count_888X;
          push_list_return_tag = 2;
          goto push_list;
         push_list_return_2:
          arg0K0 = 2;
          goto L59431;}}
      else {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L29043;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_919X;
            goto L63891;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_920X;
            goto L63891;}}}}}}
 L29353: {
  nargs_921X = arg0K0;
  opcode_922X = (((*((long *) ((SstackS) + (4 + (((nargs_921X)<<2)))))))>>2);
  handlers_923X = SHARED_REF((Sexception_handlersS));
  if ((3 == (3 & handlers_923X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_923X))) + -4))))>>2))))) {
      goto L29418;}
    else {
      goto L29501;}}
  else {
    goto L29501;}}
 L63891: {
  retval_924X = arg0K0;
  SstackS = (ScontS);
  return retval_924X;}
 L28169: {
  code_925X = arg0K0;
  envUtemp_offset_926X = arg0K1;
  used_927X = arg0K2;
  template_928X = arg0K3;
  spec_929X = *((unsigned char *) ((((char *) (-3 + code_925X))) + envUtemp_offset_926X));
  if ((3 == spec_929X)) {
    x_930X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_930X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_928X);
    goto L28173;}
  else {
    if ((1 == spec_929X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_928X);
      goto L28173;}
    else {
      if ((2 == spec_929X)) {
        x_931X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_931X);
        goto L28173;}
      else {
        if ((4 == spec_929X)) {
          x_932X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_932X);
          goto L28173;}
        else {
          if ((6 == spec_929X)) {
            x_933X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_933X);
            x_934X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_934X);
            goto L28173;}
          else {
            if ((5 == spec_929X)) {
              x_935X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_935X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_928X);
              goto L28173;}
            else {
              if ((7 == spec_929X)) {
                x_936X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_936X);
                x_937X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_937X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_928X);
                goto L28173;}
              else {
                goto L28173;}}}}}}}}
 L59470: {
  skip_938X = arg0K0;
  if ((total_arg_count_891X < 3)) {
    arg0K0 = total_arg_count_891X;
    goto L59478;}
  else {
    if ((2 < stack_arg_count_886X)) {
      arg0K0 = stack_arg_count_886X;
      goto L59478;}
    else {
      arg0K0 = 2;
      goto L59478;}}}
 L59431: {
  skip_939X = arg0K0;
  if (nativeP_902X) {
    merged_arg0K0 = stack_space_901X;
    ensure_stack_spaceB_return_tag = 0;
    goto ensure_stack_spaceB;
   ensure_stack_spaceB_return_0:
    v_940X = ensure_stack_spaceB0_return_value;
    if (v_940X) {
      pending_interruptP_return_tag = 0;
      goto pending_interruptP;
     pending_interruptP_return_0:
      v_941X = pending_interruptP0_return_value;
      if (v_941X) {
        arg0K0 = skip_939X;
        goto L28641;}
      else {
        goto L59598;}}
    else {
      goto L59598;}}
  else {
    template_942X = *((long *) (((char *) (-3 + (SvalS)))));
    arg0K0 = (*((long *) (((char *) (-3 + template_942X)))));
    arg0K1 = skip_939X;
    arg0K2 = template_942X;
    arg0K3 = stack_space_901X;
    goto L32090;}}
 L29418: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_923X))) + (((opcode_922X)<<2)))));
  obj_943X = SvalS;
  if ((3 == (3 & obj_943X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_943X))) + -4))))>>2))))) {
      goto L29435;}
    else {
      goto L29515;}}
  else {
    goto L29515;}}
 L29501: {
  merged_arg4K0 = "exception-handlers is not a vector";
  loseD0_return_tag = 0;
  goto loseD0;
 loseD0_return_0:
  goto L29418;}
 L28173: {
  Slast_code_calledS = code_925X;
  Scode_pointerS = ((((char *) (-3 + code_925X))) + used_927X);
  if (((SstackS) < (s48_Sstack_limitS))) {
    interruptP_944X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if (((SstackS) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        if (interruptP_944X) {
          goto L28180;}
        else {
          goto L28187;}}
      else {
        if (interruptP_944X) {
          goto L28180;}
        else {
          goto L28187;}}}
    else {
      if (interruptP_944X) {
        goto L28180;}
      else {
        goto L28187;}}}
  else {
    goto L28187;}}
 L59478: {
  final_stack_arg_count_945X = arg0K0;
  if ((stack_arg_count_886X < final_stack_arg_count_945X)) {
    arg0K0 = final_stack_arg_count_945X;
    goto L59482;}
  else {
    arg0K0 = stack_arg_count_886X;
    goto L59482;}}
 L28641: {
  protocol_skip_946X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((protocol_skip_946X)<<2)));
  x_947X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_947X);
  x_948X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_948X);
  x_949X = Scurrent_threadS;
  addr_950X = (((char *) (-3 + x_949X))) + 12;S48_WRITE_BARRIER(x_949X, addr_950X, 1);
  *((long *) addr_950X) = (long) (1);
  n_951X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_951X)<<2)));
  code_952X = Sinterrupted_native_call_return_codeS;
  v_953X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_953X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_952X))) + 13))));
  ScontS = (SstackS);
  goto L28375;}
 L59598: {
  v_954X = s48_call_native_procedure((SvalS), skip_939X);
  arg0K0 = v_954X;
  goto L58611;}
 L32090: {
  code_955X = arg0K0;
  used_956X = arg0K1;
  template_957X = arg0K2;
  needed_stack_space_958X = arg0K3;
  spec_959X = *((unsigned char *) ((((char *) (-3 + code_955X))) + used_956X));
  if ((3 == spec_959X)) {
    x_960X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_960X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_957X);
    goto L32094;}
  else {
    if ((1 == spec_959X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_957X);
      goto L32094;}
    else {
      if ((2 == spec_959X)) {
        x_961X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_961X);
        goto L32094;}
      else {
        if ((4 == spec_959X)) {
          x_962X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_962X);
          goto L32094;}
        else {
          if ((6 == spec_959X)) {
            x_963X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_963X);
            x_964X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_964X);
            goto L32094;}
          else {
            if ((5 == spec_959X)) {
              x_965X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_965X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_957X);
              goto L32094;}
            else {
              if ((7 == spec_959X)) {
                x_966X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_966X);
                x_967X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_967X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_957X);
                goto L32094;}
              else {
                goto L32094;}}}}}}}}
 L29435: {
  arg0K0 = (2 + nargs_921X);
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = opcode_922X;
  goto L59401;}
 L29515: {
  merged_arg4K0 = "exception handler is not a closure";
  loseD0_return_tag = 1;
  goto loseD0;
 loseD0_return_1:
  goto L29435;}
 L28180: {
  pending_interruptP_return_tag = 1;
  goto pending_interruptP;
 pending_interruptP_return_1:
  v_968X = pending_interruptP0_return_value;
  if (v_968X) {
    goto L28552;}
  else {
    goto L28187;}}
 L28187: {
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L59482: {
  v_969X = arg0K0;
  merged_arg0K0 = v_969X;
  merged_arg0K1 = stack_arg_count_886X;
  merged_arg0K2 = list_args_887X;
  merged_arg0K3 = list_arg_count_888X;
  rest_list_setupAgc_return_tag = 1;
  goto rest_list_setupAgc;
 rest_list_setupAgc_return_1:
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((final_stack_arg_count_945X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((total_arg_count_891X)<<2)));
  arg0K0 = skip_938X;
  goto L59431;}
 L28375: {
  n_970X = (Spending_interruptsS) & (Senabled_interruptsS);
  arg0K0 = 0;
  arg0K1 = 1;
  goto L28428;}
 L58611: {
  tag_971X = arg0K0;
  arg0K0 = tag_971X;
  goto L58615;}
 L32094: {
  Slast_code_calledS = code_955X;
  Scode_pointerS = ((((char *) (-3 + code_955X))) + (1 + used_956X));
  merged_arg0K0 = needed_stack_space_958X;
  ensure_stack_spaceB_return_tag = 1;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_1:
  v_972X = ensure_stack_spaceB0_return_value;
  if (v_972X) {
    pending_interruptP_return_tag = 2;
    goto pending_interruptP;
   pending_interruptP_return_2:
    v_973X = pending_interruptP0_return_value;
    if (v_973X) {
      goto L28552;}
    else {
      goto L32108;}}
  else {
    goto L32108;}}
 L28552: {
  x_974X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_974X);
  code_975X = current_code_vector();
  pc_976X = (Scode_pointerS) - (((char *) (-3 + code_975X)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (code_975X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((pc_976X)<<2)));
  x_977X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_977X);
  x_978X = Scurrent_threadS;
  addr_979X = (((char *) (-3 + x_978X))) + 12;S48_WRITE_BARRIER(x_978X, addr_979X, 1);
  *((long *) addr_979X) = (long) (1);
  n_980X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_980X)<<2)));
  code_981X = Sinterrupted_byte_opcode_return_codeS;
  v_982X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_982X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_981X))) + 13))));
  ScontS = (SstackS);
  goto L28375;}
 L31656: {
  code_pointer_983X = arg2K0;
  switch ((*((unsigned char *) code_pointer_983X))) {
    case 0 : 
    case 31 : 
    case 42 : {push_exception_setupB(14, 1);
      n_984X = *((unsigned char *) (Scode_pointerS));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_984X)<<2)));
      arg0K0 = 1;
      goto L29353;}
      break;
    case 1 : {
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 2 : {
      x_985X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_985X);
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 3 : {
      x_986X = -512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_986X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 4 : {
      template_987X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_988X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_989X = *((long *) ((((char *) (-3 + template_987X))) + (((index_988X)<<2))));
      SvalS = (*((long *) ((((char *) (-3 + location_989X))) + 4)));
      if ((17 == (255 & (SvalS)))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_989X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_987X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_988X)<<2)));
        arg0K0 = 3;
        goto L29353;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg2K0 = (Scode_pointerS);
        goto L31656;}}
      break;
    case 5 : {
      template_990X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_991X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_992X = *((long *) ((((char *) (-3 + template_990X))) + (((index_991X)<<2))));
      if ((273 == (*((long *) ((((char *) (-3 + location_992X))) + 4))))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_992X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_990X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_991X)<<2)));
        x_993X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_993X);
        arg0K0 = 4;
        goto L29353;}
      else {
        val_994X = SvalS;
        addr_995X = (((char *) (-3 + location_992X))) + 4;S48_WRITE_BARRIER(location_992X, addr_995X, val_994X);
        *((long *) addr_995X) = (long) (val_994X);
        SvalS = 13;
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg2K0 = (Scode_pointerS);
        goto L31656;}}
      break;
    case 6 : {
      total_count_996X = *((unsigned char *) ((Scode_pointerS) + 1));
      closures_997X = *((unsigned char *) ((Scode_pointerS) + 2));s48_make_availableAgc((((((1 + total_count_996X) + (3 * closures_997X)))<<2)));
      len_998X = ((total_count_996X)<<2);
      addr_999X = s48_allocate_small((4 + len_998X));
      *((long *) addr_999X) = (long) ((10 + (((len_998X)<<8))));
      new_env_1000X = 3 + (((long) (addr_999X + 4)));
      if ((0 == closures_997X)) {
        arg0K0 = new_env_1000X;
        arg0K1 = 0;
        arg0K2 = 2;
        arg0K3 = total_count_996X;
        goto L11333;}
      else {
        template_1001X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<2))));
        arg0K0 = closures_997X;
        arg0K1 = 0;
        arg0K2 = 3;
        goto L21847;}}
      break;
    case 7 : {
      total_count_1002X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      closures_1003X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));s48_make_availableAgc((((((1 + total_count_1002X) + (3 * closures_1003X)))<<2)));
      len_1004X = ((total_count_1002X)<<2);
      addr_1005X = s48_allocate_small((4 + len_1004X));
      *((long *) addr_1005X) = (long) ((10 + (((len_1004X)<<8))));
      new_env_1006X = 3 + (((long) (addr_1005X + 4)));
      if ((0 == closures_1003X)) {
        arg0K0 = new_env_1006X;
        arg0K1 = 0;
        arg0K2 = 4;
        arg0K3 = total_count_1002X;
        goto L14083;}
      else {
        template_1007X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
        arg0K0 = closures_1003X;
        arg0K1 = 0;
        arg0K2 = 6;
        goto L21908;}}
      break;
    case 8 : {
      x_1008X = SvalS;
      x_1009X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      addr_1010X = (((char *) (-3 + x_1009X))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2));S48_WRITE_BARRIER(x_1009X, addr_1010X, x_1008X);
      *((long *) addr_1010X) = (long) (x_1008X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 9 : {
      value_1011X = SvalS;
      x_1012X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      addr_1013X = (((char *) (-3 + x_1012X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 2))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 3)))))<<2));S48_WRITE_BARRIER(x_1012X, addr_1013X, value_1011X);
      *((long *) addr_1013X) = (long) (value_1011X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 10 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 11 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 12 : {
      free_count_1014X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      size_1015X = 1 + free_count_1014X;s48_make_availableAgc((4 + (((size_1015X)<<2))));
      len_1016X = ((size_1015X)<<2);
      addr_1017X = s48_allocate_small((4 + len_1016X));
      *((long *) addr_1017X) = (long) ((14 + (((len_1016X)<<8))));
      closure_1018X = 3 + (((long) (addr_1017X + 4)));
      *((long *) (((char *) (-3 + closure_1018X)))) = (long) ((SvalS));
      arg0K0 = free_count_1014X;
      goto L34289;}
      break;
    case 13 : {
      x_1019X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1019X);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 14 : {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (1);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 15 : {
      value_1020X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = value_1020X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 16 : {
      SstackS = ((SstackS) + (0 - ((((0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))))<<2))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 17 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      goto L60176;}
      break;
    case 18 : {
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 19 : {
      x_1021X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1021X);
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 20 : {
      x_1022X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1022X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 21 : {
      SvalS = (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 22 : {
      *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 23 : {
      *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 24 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 25 : {
      x_1023X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1023X);
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 26 : {
      x_1024X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1024X);
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 27 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 28 : {
      x_1025X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1025X);
      n_moves_1026X = *((unsigned char *) ((Scode_pointerS) + 1));
      arg0K0 = 0;
      goto L33623;}
      break;
    case 29 : {
      x_1027X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1027X);
      n_moves_1028X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      arg0K0 = 0;
      goto L33540;}
      break;
    case 30 : {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
      if ((1 == (((long) (ScontS))))) {
        arg0K0 = 1;
        goto L60245;}
      else {
        v_1029X = really_preserve_continuation(0);
        arg0K0 = v_1029X;
        goto L60245;}}
      break;
    case 32 : {
      stack_arg_count_1030X = *((unsigned char *) ((Scode_pointerS) + 3));
      code_pointer_1031X = (Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      ScontS = ((SstackS) + (((stack_arg_count_1030X)<<2)));
      *((long *) (ScontS)) = (long) ((((long) code_pointer_1031X)));
      arg0K0 = stack_arg_count_1030X;
      goto L59328;}
      break;
    case 33 : {
      merged_arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      move_args_above_contB_return_tag = 0;
      goto move_args_above_contB;
     move_args_above_contB_return_0:
      arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      goto L59328;}
      break;
    case 34 : {
      stack_arg_count_1032X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      return_pointer_offset_1033X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_1033X)) {
        merged_arg0K0 = stack_arg_count_1032X;
        move_args_above_contB_return_tag = 1;
        goto move_args_above_contB;
       move_args_above_contB_return_1:
        goto L29156;}
      else {
        code_pointer_1034X = (Scode_pointerS) + return_pointer_offset_1033X;
        ScontS = ((SstackS) + (((stack_arg_count_1032X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_1034X)));
        goto L29156;}}
      break;
    case 35 : {
      v_1035X = (s48_Sstack_limitS) == (((char *) -1));
      if (v_1035X) {
        pending_interruptP_return_tag = 3;
        goto pending_interruptP;
       pending_interruptP_return_3:
        v_1036X = pending_interruptP0_return_value;
        if (v_1036X) {
          goto L28552;}
        else {
          goto L60271;}}
      else {
        goto L60271;}}
      break;
    case 36 : {
      list_args_1037X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1038X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      merged_arg0K0 = list_args_1037X;
      okay_argument_list_return_tag = 0;
      goto okay_argument_list;
     okay_argument_list_return_0:
      okayP_1039X = okay_argument_list0_return_value;
      length_1040X = okay_argument_list1_return_value;
      if (okayP_1039X) {
        return_pointer_offset_1041X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
        if ((0 == return_pointer_offset_1041X)) {
          merged_arg0K0 = stack_nargs_1038X;
          move_args_above_contB_return_tag = 2;
          goto move_args_above_contB;
         move_args_above_contB_return_2:
          arg0K0 = stack_nargs_1038X;
          arg0K1 = list_args_1037X;
          arg0K2 = length_1040X;
          goto L58352;}
        else {
          code_pointer_1042X = (Scode_pointerS) + return_pointer_offset_1041X;
          ScontS = ((SstackS) + (((stack_nargs_1038X)<<2)));
          *((long *) (ScontS)) = (long) ((((long) code_pointer_1042X)));
          arg0K0 = stack_nargs_1038X;
          arg0K1 = list_args_1037X;
          arg0K2 = length_1040X;
          goto L58352;}}
      else {
        merged_arg0K0 = list_args_1037X;
        merged_arg0K1 = stack_nargs_1038X;
        pop_args_GlistSAgc_return_tag = 1;
        goto pop_args_GlistSAgc;
       pop_args_GlistSAgc_return_1:
        args_1043X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
        x_1044X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1044X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (args_1043X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 37 : {
      SstackS = ((SstackS) + 4);
      p_1045X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1046X = ((p_1045X)>>2);
      SvalS = (*((long *) ((SstackS) + (((stack_nargs_1046X)<<2)))));
      merged_arg0K0 = stack_nargs_1046X;
      move_args_above_contB_return_tag = 3;
      goto move_args_above_contB;
     move_args_above_contB_return_3:
      rest_list_1047X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((25 == rest_list_1047X)) {
        v_1048X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1048X;
        arg0K1 = (-2 + stack_nargs_1046X);
        goto L20844;}
      else {
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_1047X))) + 4))))) {
          arg0K0 = (*((long *) (((char *) (-3 + rest_list_1047X)))));
          arg0K1 = (-1 + stack_nargs_1046X);
          goto L20844;}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + rest_list_1047X))) + 4)))))) + 4)));
          arg0K1 = rest_list_1047X;
          goto L20889;}}}
      break;
    case 38 : {
      cont_1049X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & cont_1049X))) {
        if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1049X))) + -4))))>>2))))) {
          merged_arg0K0 = cont_1049X;
          merged_arg0K1 = 0;
          copy_continuation_from_heapB_return_tag = 0;
          goto copy_continuation_from_heapB;
         copy_continuation_from_heapB_return_0:
          goto L29114;}
        else {
          goto L29123;}}
      else {
        goto L29123;}}
      break;
    case 39 : {
      goto L58939;}
      break;
    case 40 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      arg0K1 = 25;
      arg0K2 = 0;
      goto L28781;}
      break;
    case 41 : {
      p_1050X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      p_1051X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1052X = ((p_1051X)>>2);
      rest_list_1053X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = stack_nargs_1052X;
      arg0K1 = rest_list_1053X;
      arg0K2 = ((((p_1050X)>>2)) - stack_nargs_1052X);
      goto L28781;}
      break;
    case 43 : {
      template_1054X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
      code_1055X = *((long *) (((char *) (-3 + template_1054X))));
      nargs_1056X = *((unsigned char *) ((Scode_pointerS) + 7));
      return_pointer_offset_1057X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_1057X)) {
        merged_arg0K0 = nargs_1056X;
        move_args_above_contB_return_tag = 4;
        goto move_args_above_contB;
       move_args_above_contB_return_4:
        goto L33274;}
      else {
        code_pointer_1058X = (Scode_pointerS) + return_pointer_offset_1057X;
        ScontS = ((SstackS) + (((nargs_1056X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_1058X)));
        goto L33274;}}
      break;
    case 44 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 3);
        arg2K0 = (Scode_pointerS);
        goto L31656;}}
      break;
    case 45 : {
      Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 46 : {
      Scode_pointerS = ((Scode_pointerS) + (0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))));
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 47 : {
      if ((0 == (3 & (SvalS)))) {
        p_1059X = SvalS;
        max_1060X = *((unsigned char *) ((Scode_pointerS) + 1));
        val_1061X = ((p_1059X)>>2);
        if ((val_1061X < 0)) {
          goto L31965;}
        else {
          if ((val_1061X < max_1060X)) {
            index_1062X = 1 + (((val_1061X)<<1));
            arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1062X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1062X)))));
            goto L31967;}
          else {
            goto L31965;}}}
      else {push_exception_setupB(5, 0);
        x_1063X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1063X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 48 : {
      stack_nargs_1064X = (((*((long *) (SstackS))))>>2);
      if ((0 == stack_nargs_1064X)) {
        rest_list_1065X = *((long *) ((SstackS) + 4));
        arg0_1066X = *((long *) ((SstackS) + 8));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_1066X);
        SvalS = (*((long *) (((char *) (-3 + rest_list_1065X)))));
        goto L32554;}
      else {
        arg0_1067X = *((long *) ((SstackS) + (4 + (((stack_nargs_1064X)<<2)))));
        arg1_1068X = *((long *) ((SstackS) + (((stack_nargs_1064X)<<2))));
        *((long *) ((SstackS) + (4 + (((stack_nargs_1064X)<<2))))) = (long) (1);
        *((long *) (SstackS)) = (long) ((-4 + (((stack_nargs_1064X)<<2))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_1067X);
        SvalS = arg1_1068X;
        goto L32554;}}
      break;
    case 49 : {
      stack_nargs_1069X = (((*((long *) (SstackS))))>>2);
      if ((stack_nargs_1069X == 0)) {
        rest_list_1070X = *((long *) ((SstackS) + 4));
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_1070X))) + 4))))) {
          arg0K0 = 1;
          goto L31863;}
        else {
          *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_1070X))) + 4))));
          *((long *) ((SstackS) + 8)) = (long) ((SvalS));
          arg0K0 = -2;
          goto L31863;}}
      else {
        if ((stack_nargs_1069X == 1)) {
          if ((25 == (*((long *) ((SstackS) + 4))))) {
            arg0K0 = 1;
            goto L31863;}
          else {
            *((long *) (SstackS)) = (long) (0);
            *((long *) ((SstackS) + 8)) = (long) ((SvalS));
            arg0K0 = -2;
            goto L31863;}}
        else {
          *((long *) ((SstackS) + (4 + (((stack_nargs_1069X)<<2))))) = (long) ((SvalS));
          arg0K0 = -2;
          goto L31863;}}}
      break;
    case 50 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        x_1071X = (((*((long *) (SstackS))))>>2);
        if ((x_1071X == 0)) {
          rest_list_1072X = *((long *) ((SstackS) + 4));
          if ((25 == (*((long *) ((((char *) (-3 + rest_list_1072X))) + 4))))) {
            arg0K0 = 1;
            goto L32445;}
          else {
            *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_1072X))) + 4))));
            *((long *) ((SstackS) + 8)) = (long) ((*((long *) (((char *) (-3 + rest_list_1072X))))));
            arg0K0 = -2;
            goto L32445;}}
        else {
          if ((x_1071X == 1)) {
            if ((25 == (*((long *) ((SstackS) + 4))))) {
              arg0K0 = 1;
              goto L32445;}
            else {
              *((long *) (SstackS)) = (long) (0);
              arg0K0 = -2;
              goto L32445;}}
          else {
            arg0K0 = -2;
            goto L32445;}}}}
      break;
    case 51 : {
      arg2_1073X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1074X = SvalS;
      if ((arg2_1073X == x_1074X)) {
        arg0K0 = 5;
        goto L60316;}
      else {
        arg0K0 = 1;
        goto L60316;}}
      break;
    case 52 : {
      x_1075X = SvalS;
      if ((0 == (3 & x_1075X))) {
        arg0K0 = 5;
        goto L60328;}
      else {
        if ((3 == (3 & x_1075X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
            arg0K0 = 5;
            goto L60328;}
          else {
            goto L18515;}}
        else {
          goto L18515;}}}
      break;
    case 53 : {
      n_1076X = SvalS;
      if ((0 == (3 & n_1076X))) {
        goto L49839;}
      else {
        if ((3 == (3 & n_1076X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
            goto L49839;}
          else {
            goto L49840;}}
        else {
          goto L49840;}}}
      break;
    case 54 : {
      arg0K0 = (SvalS);
      goto L49973;}
      break;
    case 55 : {
      arg0K0 = (SvalS);
      goto L49973;}
      break;
    case 56 : {
      arg0K0 = (SvalS);
      goto L49973;}
      break;
    case 57 : {
      n_1077X = SvalS;
      if ((0 == (3 & n_1077X))) {
        goto L42447;}
      else {
        if ((3 == (3 & n_1077X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1077X))) + -4))))>>2))))) {
            goto L42447;}
          else {
            goto L42448;}}
        else {
          goto L42448;}}}
      break;
    case 58 : {
      x_1078X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1078X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 59 : {
      x_1079X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1079X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 60 : {
      arg2_1080X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1081X = SvalS;
      if ((0 == (3 & (arg2_1080X | y_1081X)))) {s48_make_availableAgc(16);
        x_1082X = (((arg2_1080X)>>2)) + (((y_1081X)>>2));
        if ((536870911 < x_1082X)) {
          goto L42573;}
        else {
          if ((x_1082X < -536870912)) {
            goto L42573;}
          else {
            arg0K0 = (((x_1082X)<<2));
            goto L42519;}}}
      else {
        if ((0 == (3 & arg2_1080X))) {
          goto L42525;}
        else {
          if ((3 == (3 & arg2_1080X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1080X))) + -4))))>>2))))) {
              goto L42525;}
            else {
              goto L42534;}}
          else {
            goto L42534;}}}}
      break;
    case 61 : {
      arg2_1083X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1084X = SvalS;
      if ((0 == (3 & (arg2_1083X | y_1084X)))) {
        a_1085X = ((arg2_1083X)>>2);
        b_1086X = ((y_1084X)>>2);
        if ((a_1085X < 0)) {
          arg0K0 = (0 - a_1085X);
          goto L11582;}
        else {
          arg0K0 = a_1085X;
          goto L11582;}}
      else {
        if ((0 == (3 & arg2_1083X))) {
          goto L51746;}
        else {
          if ((3 == (3 & arg2_1083X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1083X))) + -4))))>>2))))) {
              goto L51746;}
            else {
              goto L51755;}}
          else {
            goto L51755;}}}}
      break;
    case 62 : {
      arg2_1087X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1088X = SvalS;
      if ((0 == (3 & (arg2_1087X | y_1088X)))) {s48_make_availableAgc(16);
        x_1089X = (((arg2_1087X)>>2)) - (((y_1088X)>>2));
        if ((536870911 < x_1089X)) {
          goto L42862;}
        else {
          if ((x_1089X < -536870912)) {
            goto L42862;}
          else {
            arg0K0 = (((x_1089X)<<2));
            goto L42808;}}}
      else {
        if ((0 == (3 & arg2_1087X))) {
          goto L42814;}
        else {
          if ((3 == (3 & arg2_1087X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1087X))) + -4))))>>2))))) {
              goto L42814;}
            else {
              goto L42823;}}
          else {
            goto L42823;}}}}
      break;
    case 63 : {
      arg2_1090X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1091X = SvalS;
      if ((0 == y_1091X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1090X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1091X);
        arg0K0 = 2;
        goto L29353;}
      else {
        if ((0 == (3 & (arg2_1090X | y_1091X)))) {
          if ((0 == y_1091X)) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1090X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_1091X);
            arg0K0 = 2;
            goto L29353;}
          else {
            a_1092X = ((arg2_1090X)>>2);
            b_1093X = ((y_1091X)>>2);
            if ((a_1092X < 0)) {
              arg0K0 = (0 - a_1092X);
              goto L11840;}
            else {
              arg0K0 = a_1092X;
              goto L11840;}}}
        else {
          if ((0 == (3 & arg2_1090X))) {
            goto L51999;}
          else {
            if ((3 == (3 & arg2_1090X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>2))))) {
                goto L51999;}
              else {
                goto L52036;}}
            else {
              goto L52036;}}}}}
      break;
    case 64 : {
      arg2_1094X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1095X = SvalS;
      if ((0 == (3 & (arg2_1094X | y_1095X)))) {
        if ((arg2_1094X == y_1095X)) {
          arg0K0 = 5;
          goto L43093;}
        else {
          arg0K0 = 1;
          goto L43093;}}
      else {
        if ((0 == (3 & arg2_1094X))) {
          goto L43099;}
        else {
          if ((3 == (3 & arg2_1094X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1094X))) + -4))))>>2))))) {
              goto L43099;}
            else {
              goto L43110;}}
          else {
            goto L43110;}}}}
      break;
    case 65 : {
      arg2_1096X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1097X = SvalS;
      if ((0 == (3 & (arg2_1096X | y_1097X)))) {
        if ((arg2_1096X < y_1097X)) {
          arg0K0 = 5;
          goto L43353;}
        else {
          arg0K0 = 1;
          goto L43353;}}
      else {
        if ((0 == (3 & arg2_1096X))) {
          goto L43359;}
        else {
          if ((3 == (3 & arg2_1096X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1096X))) + -4))))>>2))))) {
              goto L43359;}
            else {
              goto L43370;}}
          else {
            goto L43370;}}}}
      break;
    case 66 : {
      arg2_1098X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1099X = SvalS;
      if ((0 == (3 & (arg2_1098X | y_1099X)))) {
        if ((y_1099X < arg2_1098X)) {
          arg0K0 = 5;
          goto L43676;}
        else {
          arg0K0 = 1;
          goto L43676;}}
      else {
        if ((0 == (3 & arg2_1098X))) {
          goto L43682;}
        else {
          if ((3 == (3 & arg2_1098X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1098X))) + -4))))>>2))))) {
              goto L43682;}
            else {
              goto L43693;}}
          else {
            goto L43693;}}}}
      break;
    case 67 : {
      arg2_1100X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1101X = SvalS;
      if ((0 == (3 & (arg2_1100X | y_1101X)))) {
        if ((y_1101X < arg2_1100X)) {
          arg0K0 = 1;
          goto L43999;}
        else {
          arg0K0 = 5;
          goto L43999;}}
      else {
        if ((0 == (3 & arg2_1100X))) {
          goto L44005;}
        else {
          if ((3 == (3 & arg2_1100X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1100X))) + -4))))>>2))))) {
              goto L44005;}
            else {
              goto L44016;}}
          else {
            goto L44016;}}}}
      break;
    case 68 : {
      arg2_1102X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1103X = SvalS;
      if ((0 == (3 & (arg2_1102X | y_1103X)))) {
        if ((arg2_1102X < y_1103X)) {
          arg0K0 = 1;
          goto L44293;}
        else {
          arg0K0 = 5;
          goto L44293;}}
      else {
        if ((0 == (3 & arg2_1102X))) {
          goto L44299;}
        else {
          if ((3 == (3 & arg2_1102X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1102X))) + -4))))>>2))))) {
              goto L44299;}
            else {
              goto L44310;}}
          else {
            goto L44310;}}}}
      break;
    case 69 : {
      arg2_1104X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1105X = SvalS;
      if ((0 == y_1105X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1104X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1105X);
        arg0K0 = 2;
        goto L29353;}
      else {
        if ((0 == (3 & (arg2_1104X | y_1105X)))) {
          if ((0 == y_1105X)) {
            val_1106X = Hinteger_op8301(arg2_1104X, y_1105X);
            SvalS = val_1106X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}
          else {
            a_1107X = ((arg2_1104X)>>2);
            b_1108X = ((y_1105X)>>2);
            if ((a_1107X < 0)) {
              arg0K0 = (0 - a_1107X);
              goto L12454;}
            else {
              arg0K0 = a_1107X;
              goto L12454;}}}
        else {
          if ((0 == (3 & arg2_1104X))) {
            goto L44599;}
          else {
            if ((3 == (3 & arg2_1104X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1104X))) + -4))))>>2))))) {
                goto L44599;}
              else {
                goto L44608;}}
            else {
              goto L44608;}}}}}
      break;
    case 70 : {
      arg2_1109X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1110X = SvalS;
      if ((0 == y_1110X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1109X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1110X);
        arg0K0 = 2;
        goto L29353;}
      else {
        if ((0 == (3 & (arg2_1109X | y_1110X)))) {
          if ((0 == y_1110X)) {
            val_1111X = Hinteger_op8232(arg2_1109X, y_1110X);
            SvalS = val_1111X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}
          else {
            a_1112X = ((arg2_1109X)>>2);
            if ((a_1112X < 0)) {
              arg0K0 = (0 - a_1112X);
              goto L44813;}
            else {
              arg0K0 = a_1112X;
              goto L44813;}}}
        else {
          if ((0 == (3 & arg2_1109X))) {
            goto L44775;}
          else {
            if ((3 == (3 & arg2_1109X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1109X))) + -4))))>>2))))) {
                goto L44775;}
              else {
                goto L44784;}}
            else {
              goto L44784;}}}}}
      break;
    case 71 : {
      n_1113X = SvalS;
      if ((0 == (3 & n_1113X))) {
        goto L44962;}
      else {
        if ((3 == (3 & n_1113X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1113X))) + -4))))>>2))))) {
            goto L44962;}
          else {
            goto L44963;}}
        else {
          goto L44963;}}}
      break;
    case 72 : {
      n_1114X = SvalS;
      if ((0 == (3 & n_1114X))) {
        goto L45017;}
      else {
        if ((3 == (3 & n_1114X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1114X))) + -4))))>>2))))) {
            goto L45017;}
          else {
            goto L45018;}}
        else {
          goto L45018;}}}
      break;
    case 73 : {
      n_1115X = SvalS;
      if ((0 == (3 & n_1115X))) {
        goto L45072;}
      else {
        if ((3 == (3 & n_1115X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1115X))) + -4))))>>2))))) {
            goto L45072;}
          else {
            goto L45075;}}
        else {
          goto L45075;}}}
      break;
    case 74 : {
      n_1116X = SvalS;
      if ((0 == (3 & n_1116X))) {
        goto L45132;}
      else {
        if ((3 == (3 & n_1116X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1116X))) + -4))))>>2))))) {
            goto L45132;}
          else {
            goto L45133;}}
        else {
          goto L45133;}}}
      break;
    case 75 : {
      n_1117X = SvalS;
      if ((0 == (3 & n_1117X))) {
        goto L45187;}
      else {
        if ((3 == (3 & n_1117X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1117X))) + -4))))>>2))))) {
            goto L45187;}
          else {
            goto L45190;}}
        else {
          goto L45190;}}}
      break;
    case 76 : {
      x_1118X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1118X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 77 : {
      x_1119X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1119X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 78 : {
      x_1120X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1120X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 79 : {
      x_1121X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1121X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 80 : {
      x_1122X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1122X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 81 : {
      x_1123X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1123X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 82 : {
      x_1124X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1124X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 83 : {
      x_1125X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1125X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 84 : {
      x_1126X = SvalS;
      if ((0 == (3 & x_1126X))) {
        goto L53321;}
      else {
        if ((3 == (3 & x_1126X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1126X))) + -4))))>>2))))) {
            goto L53321;}
          else {
            goto L53324;}}
        else {
          goto L53324;}}}
      break;
    case 85 : {
      x_1127X = SvalS;
      if ((0 == (3 & x_1127X))) {
        goto L56707;}
      else {
        if ((3 == (3 & x_1127X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1127X))) + -4))))>>2))))) {
            goto L56707;}
          else {
            goto L56710;}}
        else {
          goto L56710;}}}
      break;
    case 86 : {
      x_1128X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1128X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 87 : {
      arg2_1129X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1130X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1129X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1130X);
      arg0K0 = 2;
      goto L29353;}
      break;
    case 88 : {
      arg2_1131X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1132X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1131X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1132X);
      arg0K0 = 2;
      goto L29353;}
      break;
    case 89 : {
      arg2_1133X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1134X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1133X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1134X);
      arg0K0 = 2;
      goto L29353;}
      break;
    case 90 : {
      x_1135X = SvalS;
      if ((0 == (3 & x_1135X))) {
        SvalS = (~ (3 | x_1135X));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        if ((0 == (3 & x_1135X))) {
          goto L45333;}
        else {
          if ((3 == (3 & x_1135X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1135X))) + -4))))>>2))))) {
              goto L45333;}
            else {
              goto L45336;}}
          else {
            goto L45336;}}}}
      break;
    case 91 : {
      x_1136X = SvalS;
      if ((0 == (3 & x_1136X))) {
        x_1137X = ((x_1136X)>>2);
        if ((x_1137X < 0)) {
          arg0K0 = (~ x_1137X);
          goto L45424;}
        else {
          arg0K0 = x_1137X;
          goto L45424;}}
      else {
        if ((0 == (3 & x_1136X))) {
          goto L45407;}
        else {
          if ((3 == (3 & x_1136X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1136X))) + -4))))>>2))))) {
              goto L45407;}
            else {
              goto L45410;}}
          else {
            goto L45410;}}}}
      break;
    case 92 : {
      arg2_1138X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1139X = SvalS;
      if ((0 == (3 & (arg2_1138X | y_1139X)))) {
        SvalS = (arg2_1138X & y_1139X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        if ((0 == (3 & arg2_1138X))) {
          goto L45509;}
        else {
          if ((3 == (3 & arg2_1138X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1138X))) + -4))))>>2))))) {
              goto L45509;}
            else {
              goto L45518;}}
          else {
            goto L45518;}}}}
      break;
    case 93 : {
      arg2_1140X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1141X = SvalS;
      if ((0 == (3 & (arg2_1140X | y_1141X)))) {
        SvalS = (arg2_1140X | y_1141X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        if ((0 == (3 & arg2_1140X))) {
          goto L45672;}
        else {
          if ((3 == (3 & arg2_1140X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1140X))) + -4))))>>2))))) {
              goto L45672;}
            else {
              goto L45681;}}
          else {
            goto L45681;}}}}
      break;
    case 94 : {
      arg2_1142X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1143X = SvalS;
      if ((0 == (3 & (arg2_1142X | y_1143X)))) {
        SvalS = (arg2_1142X ^ y_1143X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        if ((0 == (3 & arg2_1142X))) {
          goto L45835;}
        else {
          if ((3 == (3 & arg2_1142X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1142X))) + -4))))>>2))))) {
              goto L45835;}
            else {
              goto L45844;}}
          else {
            goto L45844;}}}}
      break;
    case 95 : {
      arg2_1144X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1145X = SvalS;
      if ((3 == (3 & y_1145X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1145X))) + -4))))>>2))))) {
          v_1146X = s48_bignum_test((((char *) (-3 + y_1145X))));
          if ((1 == v_1146X)) {push_exception_setupB(6, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1144X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_1145X);
            arg0K0 = 2;
            goto L29353;}
          else {
            if ((0 == (3 & arg2_1144X))) {
              if ((arg2_1144X < 0)) {
                arg0K0 = -4;
                goto L42227;}
              else {
                arg0K0 = 0;
                goto L42227;}}
            else {
              if ((3 == (3 & arg2_1144X))) {
                if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1144X))) + -4))))>>2))))) {
                  v_1147X = s48_bignum_test((((char *) (-3 + arg2_1144X))));
                  if ((1 == v_1147X)) {
                    arg0K0 = 0;
                    goto L42243;}
                  else {
                    arg0K0 = -4;
                    goto L42243;}}
                else {
                  goto L42244;}}
              else {
                goto L42244;}}}}
        else {
          goto L52381;}}
      else {
        goto L52381;}}
      break;
    case 96 : {
      x_1148X = SvalS;
      if ((9 == (255 & x_1148X))) {
        arg0K0 = 5;
        goto L60587;}
      else {
        arg0K0 = 1;
        goto L60587;}}
      break;
    case 97 : {
      arg2_1149X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_1149X))) {
        if ((9 == (255 & (SvalS)))) {
          x_1150X = SvalS;
          if ((arg2_1149X == x_1150X)) {
            arg0K0 = 5;
            goto L49640;}
          else {
            arg0K0 = 1;
            goto L49640;}}
        else {
          goto L49611;}}
      else {
        goto L49611;}}
      break;
    case 98 : {
      arg2_1151X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_1151X))) {
        if ((9 == (255 & (SvalS)))) {
          x_1152X = SvalS;
          if ((arg2_1151X < x_1152X)) {
            arg0K0 = 5;
            goto L49548;}
          else {
            arg0K0 = 1;
            goto L49548;}}
        else {
          goto L49519;}}
      else {
        goto L49519;}}
      break;
    case 99 : {
      if ((9 == (255 & (SvalS)))) {
        SvalS = (-4 & ((((SvalS))>>6)));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {push_exception_setupB(5, 1);
        x_1153X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1153X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 100 : {
      if ((0 == (3 & (SvalS)))) {
        x_1154X = (((SvalS))>>2);
        if ((x_1154X < 0)) {
          goto L53630;}
        else {
          if ((55295 < x_1154X)) {
            if ((x_1154X < 57344)) {
              goto L53630;}
            else {
              if ((1114111 < x_1154X)) {
                goto L53630;}
              else {
                goto L53636;}}}
          else {
            goto L53636;}}}
      else {push_exception_setupB(5, 1);
        x_1155X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1155X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 101 : {
      if ((0 == (3 & (SvalS)))) {
        x_1156X = (((SvalS))>>2);
        if ((x_1156X < 0)) {
          arg0K0 = 1;
          goto L49446;}
        else {
          if ((55295 < x_1156X)) {
            if ((x_1156X < 57344)) {
              arg0K0 = 1;
              goto L49446;}
            else {
              if ((1114111 < x_1156X)) {
                arg0K0 = 1;
                goto L49446;}
              else {
                arg0K0 = 5;
                goto L49446;}}}
          else {
            arg0K0 = 5;
            goto L49446;}}}
      else {push_exception_setupB(5, 1);
        x_1157X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1157X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 102 : {
      x_1158X = SvalS;
      if ((21 == x_1158X)) {
        arg0K0 = 5;
        goto L60620;}
      else {
        arg0K0 = 1;
        goto L60620;}}
      break;
    case 103 : {
      x_1159X = SvalS;
      type_1160X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & x_1159X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + x_1159X))) + -4))))>>2))) == type_1160X)) {
          arg0K0 = 5;
          goto L60634;}
        else {
          arg0K0 = 1;
          goto L60634;}}
      else {
        arg0K0 = 1;
        goto L60634;}}
      break;
    case 104 : {
      stob_1161X = SvalS;
      type_1162X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & stob_1161X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1161X))) + -4))))>>2))) == type_1162X)) {
          SvalS = (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_1161X))) + -4))))>>8))));
          Scode_pointerS = ((Scode_pointerS) + 2);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L34419;}}
      else {
        goto L34419;}}
      break;
    case 105 : {
      len_1163X = *((unsigned char *) ((Scode_pointerS) + 1));s48_make_availableAgc((4 + (((len_1163X)<<2))));
      type_1164X = *((unsigned char *) ((Scode_pointerS) + 2));
      len_1165X = ((len_1163X)<<2);
      addr_1166X = s48_allocate_small((4 + len_1165X));
      *((long *) addr_1166X) = (long) ((2 + (((((((len_1165X)<<6)) + type_1164X))<<2))));
      new_1167X = 3 + (((long) (addr_1166X + 4)));
      if ((len_1163X < 1)) {
        goto L34524;}
      else {
        *((long *) ((((char *) (-3 + new_1167X))) + (-4 + (((len_1163X)<<2))))) = (long) ((SvalS));
        arg0K0 = (-2 + len_1163X);
        goto L34508;}}
      break;
    case 106 : {
      p_1168X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      len_1169X = ((p_1168X)>>2);s48_make_availableAgc((4 + (((len_1169X)<<2))));
      type_1170X = *((unsigned char *) ((Scode_pointerS) + 1));
      len_1171X = ((len_1169X)<<2);
      addr_1172X = s48_allocate_small((4 + len_1171X));
      *((long *) addr_1172X) = (long) ((2 + (((((((len_1171X)<<6)) + type_1170X))<<2))));
      new_1173X = 3 + (((long) (addr_1172X + 4)));
      p_1174X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1175X = ((p_1174X)>>2);
      rest_list_1176X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = (-1 + stack_nargs_1175X);
      goto L34642;}
      break;
    case 107 : {
      stob_1177X = SvalS;
      type_1178X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1179X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_1177X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1177X))) + -4))))>>2))) == type_1178X)) {
          SvalS = (*((long *) ((((char *) (-3 + stob_1177X))) + (((offset_1179X)<<2)))));
          Scode_pointerS = ((Scode_pointerS) + 3);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L34810;}}
      else {
        goto L34810;}}
      break;
    case 108 : {
      arg2_1180X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_1181X = SvalS;
      type_1182X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1183X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & arg2_1180X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + arg2_1180X))) + -4))))>>2))) == type_1182X)) {
          if ((3 == (3 & arg2_1180X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg2_1180X))) + -4)))))) {
              v_1184X = *((unsigned char *) ((Scode_pointerS) + 3));
              if ((0 == v_1184X)) {
                goto L34927;}
              else {
                if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                  goto L34927;}
                else {
                  merged_arg0K0 = arg2_1180X;
                  merged_arg0K1 = (((offset_1183X)<<2));
                  merged_arg0K2 = value_1181X;
                  proposal_d_write_return_tag = 0;
                  goto proposal_d_write;
                 proposal_d_write_return_0:
                  goto L34936;}}}
            else {
              goto L34937;}}
          else {
            goto L34937;}}
        else {
          goto L34937;}}
      else {
        goto L34937;}}
      break;
    case 109 : {
      arg2_1185X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      init_1186X = SvalS;
      type_1187X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_1185X))) {
        len_1188X = ((arg2_1185X)>>2);
        if ((len_1188X < 0)) {
          goto L35154;}
        else {
          if ((4194304 < len_1188X)) {
            goto L35154;}
          else {
            Stemp0S = init_1186X;
            len_1189X = ((len_1188X)<<2);
            addr_1190X = s48_allocate_tracedAgc((4 + len_1189X));
            if ((addr_1190X == NULL)) {
              arg0K0 = 1;
              goto L35171;}
            else {
              *((long *) addr_1190X) = (long) ((2 + (((((((len_1189X)<<6)) + type_1187X))<<2))));
              arg0K0 = (3 + (((long) (addr_1190X + 4))));
              goto L35171;}}}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1185X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (init_1186X);
        arg0K0 = 3;
        goto L29353;}}
      break;
    case 110 : {
      arg2_1191X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      index_1192X = SvalS;
      type_1193X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & index_1192X))) {
        if ((3 == (3 & arg2_1191X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg2_1191X))) + -4))))>>2))) == type_1193X)) {
            len_1194X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1191X))) + -4))))>>8))))>>2);
            index_1195X = ((index_1192X)>>2);
            if ((index_1195X < 0)) {
              goto L35444;}
            else {
              if ((index_1195X < len_1194X)) {
                v_1196X = *((unsigned char *) ((Scode_pointerS) + 2));
                if ((0 == v_1196X)) {
                  goto L35434;}
                else {
                  if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                    goto L35434;}
                  else {
                    merged_arg0K0 = arg2_1191X;
                    merged_arg0K1 = index_1192X;
                    proposal_d_read_return_tag = 0;
                    goto proposal_d_read;
                   proposal_d_read_return_0:
                    v_1197X = proposal_d_read0_return_value;
                    arg0K0 = v_1197X;
                    goto L35443;}}}
              else {
                goto L35444;}}}
          else {
            goto L35399;}}
        else {
          goto L35399;}}
      else {
        goto L35399;}}
      break;
    case 111 : {
      arg2_1198X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1199X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_1200X = SvalS;
      type_1201X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_1198X))) {
        if ((3 == (3 & arg3_1199X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg3_1199X))) + -4))))>>2))) == type_1201X)) {
            if ((3 == (3 & arg3_1199X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1199X))) + -4)))))) {
                len_1202X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1199X))) + -4))))>>8))))>>2);
                index_1203X = ((arg2_1198X)>>2);
                if ((index_1203X < 0)) {
                  goto L35731;}
                else {
                  if ((index_1203X < len_1202X)) {
                    v_1204X = *((unsigned char *) ((Scode_pointerS) + 2));
                    if ((0 == v_1204X)) {
                      goto L35721;}
                    else {
                      if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                        goto L35721;}
                      else {
                        merged_arg0K0 = arg3_1199X;
                        merged_arg0K1 = arg2_1198X;
                        merged_arg0K2 = value_1200X;
                        proposal_d_write_return_tag = 1;
                        goto proposal_d_write;
                       proposal_d_write_return_1:
                        goto L35730;}}}
                  else {
                    goto L35731;}}}
              else {
                goto L35684;}}
            else {
              goto L35684;}}
          else {
            goto L35684;}}
        else {
          goto L35684;}}
      else {
        goto L35684;}}
      break;
    case 112 : {
      addr_1205X = s48_allocate_untracedAgc(12);
      if ((addr_1205X == NULL)) {
        arg0K0 = 1;
        goto L60677;}
      else {
        *((long *) addr_1205X) = (long) (2122);
        arg0K0 = (3 + (((long) (addr_1205X + 4))));
        goto L60677;}}
      break;
    case 113 : {
      arg2_1206X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (arg2_1206X | (SvalS))))) {
        len_1207X = ((arg2_1206X)>>2);
        init_1208X = (((SvalS))>>2);
        if ((len_1207X < 0)) {
          goto L46117;}
        else {
          if ((4194304 < ((((3 + len_1207X))>>2)))) {
            goto L46117;}
          else {
            addr_1209X = s48_allocate_untracedAgc((4 + len_1207X));
            if ((addr_1209X == NULL)) {
              arg0K0 = 1;
              goto L46132;}
            else {
              *((long *) addr_1209X) = (long) ((70 + (((len_1207X)<<8))));
              arg0K0 = (3 + (((long) (addr_1209X + 4))));
              goto L46132;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1206X);
        x_1210X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1210X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 114 : {
      obj_1211X = SvalS;
      if ((3 == (3 & obj_1211X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_1211X))) + -4))))>>2))))) {
          SvalS = (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L57953;}}
      else {
        goto L57953;}}
      break;
    case 115 : {
      arg2_1212X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1212X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1212X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1213X = (((SvalS))>>2);
            len_1214X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1212X))) + -4))))>>8);
            if ((index_1213X < 0)) {
              goto L53773;}
            else {
              if ((index_1213X < len_1214X)) {
                SvalS = ((((*((unsigned char *) ((((char *) (-3 + arg2_1212X))) + index_1213X))))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31656;}
              else {
                goto L53773;}}}
          else {
            goto L57379;}}
        else {
          goto L57379;}}
      else {
        goto L57379;}}
      break;
    case 116 : {
      arg2_1215X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1216X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1216X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1216X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1215X | (SvalS))))) {
            index_1217X = ((arg2_1215X)>>2);
            Kchar_1218X = (((SvalS))>>2);
            if ((3 == (3 & arg3_1216X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1216X))) + -4)))))) {
                len_1219X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1216X))) + -4))))>>8);
                if ((index_1217X < 0)) {
                  goto L50958;}
                else {
                  if ((index_1217X < len_1219X)) {
                    *((unsigned char *) ((((char *) (-3 + arg3_1216X))) + index_1217X)) = (unsigned char) (Kchar_1218X);
                    SvalS = 13;
                    Scode_pointerS = ((Scode_pointerS) + 1);
                    arg2K0 = (Scode_pointerS);
                    goto L31656;}
                  else {
                    goto L50958;}}}
              else {
                goto L50937;}}
            else {
              goto L50937;}}
          else {
            goto L56027;}}
        else {
          goto L56027;}}
      else {
        goto L56027;}}
      break;
    case 117 : {
      arg2_1220X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1220X))) {
        if ((9 == (255 & (SvalS)))) {
          len_1221X = ((arg2_1220X)>>2);
          init_1222X = (((SvalS))>>8);
          if ((len_1221X < 0)) {
            goto L46302;}
          else {
            if ((4194304 < ((((3 + (((len_1221X)<<2))))>>2)))) {
              goto L46302;}
            else {
              len_1223X = ((len_1221X)<<2);
              addr_1224X = s48_allocate_untracedAgc((4 + len_1223X));
              if ((addr_1224X == NULL)) {
                arg0K0 = 1;
                goto L46317;}
              else {
                *((long *) addr_1224X) = (long) ((66 + (((len_1223X)<<8))));
                arg0K0 = (3 + (((long) (addr_1224X + 4))));
                goto L46317;}}}}
        else {
          goto L53854;}}
      else {
        goto L53854;}}
      break;
    case 118 : {
      obj_1225X = SvalS;
      if ((3 == (3 & obj_1225X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1225X))) + -4))))>>2))))) {
          x_1226X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)) / 4;
          SvalS = (((x_1226X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L58003;}}
      else {
        goto L58003;}}
      break;
    case 119 : {
      arg2_1227X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1227X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1227X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1228X = (((SvalS))>>2);
            len_1229X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1227X))) + -4))))>>8)) / 4;
            if ((index_1228X < 0)) {
              goto L53919;}
            else {
              if ((index_1228X < len_1229X)) {
                arg0K0 = 0;
                arg0K1 = 0;
                arg0K2 = 0;
                goto L53947;}
              else {
                goto L53919;}}}
          else {
            goto L57477;}}
        else {
          goto L57477;}}
      else {
        goto L57477;}}
      break;
    case 120 : {
      arg2_1230X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1231X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1231X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1231X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1230X))) {
            if ((9 == (255 & (SvalS)))) {
              index_1232X = ((arg2_1230X)>>2);
              Kchar_1233X = (((SvalS))>>8);
              if ((3 == (3 & arg3_1231X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1231X))) + -4)))))) {
                  len_1234X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1231X))) + -4))))>>8)) / 4;
                  if ((index_1232X < 0)) {
                    goto L51113;}
                  else {
                    if ((index_1232X < len_1234X)) {
                      arg0K0 = 0;
                      arg0K1 = 0;
                      arg0K2 = Kchar_1233X;
                      goto L51177;}
                    else {
                      goto L51113;}}}
                else {
                  goto L51092;}}
              else {
                goto L51092;}}
            else {
              goto L56157;}}
          else {
            goto L56157;}}
        else {
          goto L56157;}}
      else {
        goto L56157;}}
      break;
    case 121 : {
      arg2_1235X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1236X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1237X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1238X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1238X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1238X))) + -4))))>>2))))) {
          if ((0 == (3 & arg4_1237X))) {
            if ((3 == (3 & arg3_1236X))) {
              if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1236X))) + -4))))>>2))))) {
                if ((0 == (3 & (arg2_1235X | (SvalS))))) {
                  from_index_1239X = ((arg4_1237X)>>2);
                  to_index_1240X = ((arg2_1235X)>>2);
                  count_1241X = (((SvalS))>>2);
                  if ((from_index_1239X < 0)) {
                    goto L36066;}
                  else {
                    y_1242X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1238X))) + -4))))>>8)) / 4;
                    if ((y_1242X < (from_index_1239X + count_1241X))) {
                      goto L36066;}
                    else {
                      if ((to_index_1240X < 0)) {
                        goto L36066;}
                      else {
                        y_1243X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1236X))) + -4))))>>8)) / 4;
                        if ((y_1243X < (to_index_1240X + count_1241X))) {
                          goto L36066;}
                        else {
                          if ((3 == (3 & arg3_1236X))) {
                            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1236X))) + -4)))))) {
                              if ((count_1241X < 0)) {
                                goto L36066;}
                              else {
                                memmove((void *)((((char *) (-3 + arg3_1236X))) + (((to_index_1240X)<<2))), (void *)((((char *) (-3 + arg5_1238X))) + (((from_index_1239X)<<2))),(((count_1241X)<<2)));
                                SvalS = 13;
                                Scode_pointerS = ((Scode_pointerS) + 1);
                                arg2K0 = (Scode_pointerS);
                                goto L31656;}}
                            else {
                              goto L36066;}}
                          else {
                            goto L36066;}}}}}}
                else {
                  goto L41213;}}
              else {
                goto L41213;}}
            else {
              goto L41213;}}
          else {
            goto L41213;}}
        else {
          goto L41213;}}
      else {
        goto L41213;}}
      break;
    case 122 : {s48_make_availableAgc(12);
      obj_1244X = SvalS;
      if ((3 == (3 & obj_1244X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1244X))) + -4))))>>2))))) {
          table_1245X = Sthe_symbol_tableS;
          string_1246X = SvalS;
          v_1247X = Haction4930(string_1246X);
          index_1248X = 1023 & v_1247X;
          link_1249X = *((long *) ((((char *) (-3 + table_1245X))) + (((index_1248X)<<2))));
          if ((0 == (3 & link_1249X))) {
            arg0K0 = (3 + (-4 & link_1249X));
            goto L27003;}
          else {
            arg0K0 = link_1249X;
            goto L27003;}}
        else {
          goto L42389;}}
      else {
        goto L42389;}}
      break;
    case 123 : {
      obj_1250X = SvalS;
      if ((3 == (3 & obj_1250X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + obj_1250X))) + -4))))>>2))))) {
          x_1251X = SvalS;
          descriptor_1252X = *((long *) ((((char *) (-3 + x_1251X))) + 4));
          if ((17 == (255 & descriptor_1252X))) {
            if ((529 == (*((long *) ((((char *) (-3 + x_1251X))) + 4))))) {
              arg0K0 = 5;
              goto L55721;}
            else {
              arg0K0 = 1;
              goto L55721;}}
          else {
            arg0K0 = 5;
            goto L55721;}}
        else {
          goto L55702;}}
      else {
        goto L55702;}}
      break;
    case 124 : {
      arg2_1253X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1253X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1253X))) + -4))))>>2))))) {
          x_1254X = SvalS;
          if ((1 == x_1254X)) {
            goto L50715;}
          else {
            if ((5 == x_1254X)) {
              goto L50715;}
            else {
              goto L50722;}}}
        else {
          goto L50722;}}
      else {
        goto L50722;}}
      break;
    case 125 : {
      x_1255X = SvalS;
      if ((3 == (3 & x_1255X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1255X))) + -4)))))) {
          arg0K0 = 1;
          goto L60739;}
        else {
          arg0K0 = 5;
          goto L60739;}}
      else {
        arg0K0 = 5;
        goto L60739;}}
      break;
    case 126 : {
      x_1256X = SvalS;
      if ((3 == (3 & x_1256X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1256X))) + -4)))))) {
          *((long *) ((((char *) (-3 + x_1256X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_1256X))) + -4)))));
          goto L54011;}
        else {
          goto L54011;}}
      else {
        goto L54011;}}
      break;
    case 127 : {s48_make_availableAgc(32);
      arg2_1257X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1258X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1259X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1257X))) {
        mode_1260X = ((arg2_1257X)>>2);
        close_silentlyP_1261X = SvalS;
        if ((1 == mode_1260X)) {
          goto L46741;}
        else {
          if ((2 == mode_1260X)) {
            goto L46741;}
          else {
            if ((3 == mode_1260X)) {
              goto L46741;}
            else {
              if ((4 == mode_1260X)) {
                goto L46741;}
              else {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg4_1259X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
                arg0K0 = 2;
                goto L29353;}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1258X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1257X);
        x_1262X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1262X);
        arg0K0 = 4;
        goto L29353;}}
      break;
    case 128 : {s48_make_availableAgc(2052);
      obj_1263X = SvalS;
      if ((3 == (3 & obj_1263X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1263X))) + -4))))>>2))))) {
          channel_1264X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1264X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1264X);
            arg0K0 = 1;
            goto L29353;}
          else {
            status_1265X = close_channelB(channel_1264X);
            if ((status_1265X == NO_ERRORS)) {
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31656;}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1264X);
              merged_arg0K0 = status_1265X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 0;
              goto get_error_string;
             get_error_string_return_0:
              x_1266X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1266X);
              arg0K0 = 2;
              goto L29353;}}}
        else {
          goto L60758;}}
      else {
        goto L60758;}}
      break;
    case 129 : {s48_make_availableAgc(8);
      arg2_1267X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1268X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1269X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1270X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1270X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1270X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg3_1268X | arg2_1267X)))) {
            x_1271X = SvalS;
            if ((1 == x_1271X)) {
              goto L54211;}
            else {
              if ((5 == x_1271X)) {
                goto L54211;}
              else {
                goto L54222;}}}
          else {
            goto L54222;}}
        else {
          goto L54222;}}
      else {
        goto L54222;}}
      break;
    case 130 : {s48_make_availableAgc(8);
      arg2_1272X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1273X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1274X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1274X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1274X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1272X | (SvalS))))) {
            start_1275X = ((arg2_1272X)>>2);
            count_1276X = (((SvalS))>>2);
            v_1277X = 8 == (*((long *) (((char *) (-3 + arg4_1274X)))));
            if (v_1277X) {
              if ((3 == (3 & arg3_1273X))) {
                if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1273X))) + -4))))>>2))))) {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1273X))) + -4))))>>8)) < (start_1275X + count_1276X))) {
                    goto L47351;}
                  else {
                    got_1278X = ps_write_fd(((((*((long *) ((((char *) (-3 + arg4_1274X))) + 8))))>>2)), ((((char *) (-3 + arg3_1273X))) + start_1275X), count_1276X, &pendingP_1279X, &status_1280X);
                    if ((status_1280X == NO_ERRORS)) {
                      if (pendingP_1279X) {
                        addr_1281X = (((char *) (-3 + arg4_1274X))) + 20;S48_WRITE_BARRIER(arg4_1274X, addr_1281X, 5);
                        *((long *) addr_1281X) = (long) (5);
                        arg0K0 = 1;
                        goto L47350;}
                      else {
                        arg0K0 = (((got_1278X)<<2));
                        goto L47350;}}
                    else {
                      addr_1282X = s48_allocate_small(8);
                      *((long *) addr_1282X) = (long) (1046);
                      x_1283X = 3 + (((long) (addr_1282X + 4)));
                      *((long *) (((char *) (-3 + x_1283X)))) = (long) ((((status_1280X)<<2)));
                      arg0K0 = x_1283X;
                      goto L47350;}}}
                else {
                  goto L47351;}}
              else {
                goto L47351;}}
            else {
              goto L47351;}}
          else {
            goto L54425;}}
        else {
          goto L54425;}}
      else {
        goto L54425;}}
      break;
    case 131 : {
      if ((0 == (3 & (SvalS)))) {
        param_1284X = (((SvalS))>>2);
        if ((0 == param_1284X)) {
          x_1285X = ps_io_buffer_size();
          SvalS = (((x_1285X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          if ((1 == param_1284X)) {
            x_1286X = ps_io_crlf_p();
            if (x_1286X) {
              arg0K0 = 5;
              goto L57203;}
            else {
              arg0K0 = 1;
              goto L57203;}}
          else {push_exception_setupB(17, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((param_1284X)<<2)));
            arg0K0 = 1;
            goto L29353;}}}
      else {push_exception_setupB(5, 1);
        x_1287X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1287X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 132 : {s48_make_availableAgc(2052);
      obj_1288X = SvalS;
      if ((3 == (3 & obj_1288X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1288X))) + -4))))>>2))))) {
          channel_1289X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1289X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1289X);
            arg0K0 = 1;
            goto L29353;}
          else {
            readyP_1290X = ps_check_fd(((((*((long *) ((((char *) (-3 + channel_1289X))) + 8))))>>2)), (4 == (*((long *) (((char *) (-3 + channel_1289X)))))), &status_1291X);
            if ((status_1291X == NO_ERRORS)) {
              if (readyP_1290X) {
                arg0K0 = 5;
                goto L50306;}
              else {
                arg0K0 = 1;
                goto L50306;}}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1289X);
              merged_arg0K0 = status_1291X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 1;
              goto get_error_string;
             get_error_string_return_1:
              x_1292X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1292X);
              arg0K0 = 2;
              goto L29353;}}}
        else {
          goto L60793;}}
      else {
        goto L60793;}}
      break;
    case 133 : {
      obj_1293X = SvalS;
      if ((3 == (3 & obj_1293X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1293X))) + -4))))>>2))))) {
          channel_1294X = SvalS;
          head_1295X = Spending_channels_headS;
          if ((1 == head_1295X)) {
            addr_1296X = (((char *) (-3 + channel_1294X))) + 20;S48_WRITE_BARRIER(channel_1294X, addr_1296X, 1);
            *((long *) addr_1296X) = (long) (1);
            n_1297X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1294X))) + 8))))>>2)));
            arg0K0 = (((n_1297X)<<2));
            goto L54573;}
          else {
            if ((channel_1294X == head_1295X)) {
              channel_1298X = Spending_channels_headS;
              next_1299X = *((long *) ((((char *) (-3 + channel_1298X))) + 16));
              Spending_channels_headS = next_1299X;
              addr_1300X = (((char *) (-3 + channel_1298X))) + 16;S48_WRITE_BARRIER(channel_1298X, addr_1300X, 1);
              *((long *) addr_1300X) = (long) (1);
              if ((1 == next_1299X)) {
                Spending_channels_tailS = 1;
                goto L14929;}
              else {
                goto L14929;}}
            else {
              arg0K0 = (*((long *) ((((char *) (-3 + head_1295X))) + 16)));
              arg0K1 = head_1295X;
              goto L14947;}}}
        else {
          goto L54556;}}
      else {
        goto L54556;}}
      break;
    case 134 : {s48_make_availableAgc(((((3 * (Snumber_of_channelsS)))<<2)));
      arg0K0 = (-1 + (Snumber_of_channelsS));
      arg0K1 = 25;
      goto L21577;}
      break;
    case 135 : {
      SvalS = (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)));
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 136 : {
      proposal_1301X = SvalS;
      if ((1 == proposal_1301X)) {
        goto L47572;}
      else {
        if ((3 == (3 & proposal_1301X))) {
          if ((2 == (31 & ((((*((long *) ((((char *) (-3 + proposal_1301X))) + -4))))>>2))))) {
            if ((4 == ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proposal_1301X))) + -4))))>>8))))>>2)))) {
              if ((1 == (*((long *) (((char *) (-3 + proposal_1301X))))))) {
                goto L47572;}
              else {
                goto L47603;}}
            else {
              goto L47603;}}
          else {
            goto L47603;}}
        else {
          goto L47603;}}}
      break;
    case 137 : {
      proposal_1302X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
      if ((1 == proposal_1302X)) {push_exception_setupB(26, 1);
        arg0K0 = 0;
        goto L29353;}
      else {GET_PROPOSAL_LOCK();
        log_1303X = *((long *) ((((char *) (-3 + proposal_1302X))) + 4));
        arg0K0 = 0;
        goto L13255;}}
      break;
    case 138 : {
      stob_1304X = SvalS;
      type_1305X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1306X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_1304X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1304X))) + -4))))>>2))) == type_1305X)) {
          x_1307X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          if ((1 == x_1307X)) {
            arg0K0 = (*((long *) ((((char *) (-3 + stob_1304X))) + (((offset_1306X)<<2)))));
            goto L36321;}
          else {
            merged_arg0K0 = stob_1304X;
            merged_arg0K1 = (((offset_1306X)<<2));
            proposal_d_read_return_tag = 1;
            goto proposal_d_read;
           proposal_d_read_return_1:
            v_1308X = proposal_d_read0_return_value;
            arg0K0 = v_1308X;
            goto L36321;}}
        else {
          goto L36322;}}
      else {
        goto L36322;}}
      break;
    case 139 : {
      arg2_1309X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1310X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1311X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1312X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1312X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1312X))) + -4))))>>2))))) {
          if ((0 == (3 & arg4_1311X))) {
            if ((3 == (3 & arg3_1310X))) {
              if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1310X))) + -4))))>>2))))) {
                if ((0 == (3 & (arg2_1309X | (SvalS))))) {
                  from_index_1313X = ((arg4_1311X)>>2);
                  to_index_1314X = ((arg2_1309X)>>2);
                  count_1315X = (((SvalS))>>2);
                  v_1316X = *((unsigned char *) ((Scode_pointerS) + 1));
                  if ((from_index_1313X < 0)) {
                    goto L36415;}
                  else {
                    if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1312X))) + -4))))>>8)) < (from_index_1313X + count_1315X))) {
                      goto L36415;}
                    else {
                      if ((to_index_1314X < 0)) {
                        goto L36415;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1310X))) + -4))))>>8)) < (to_index_1314X + count_1315X))) {
                          goto L36415;}
                        else {
                          if ((3 == (3 & arg3_1310X))) {
                            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1310X))) + -4)))))) {
                              if ((count_1315X < 0)) {
                                goto L36415;}
                              else {
                                if ((0 == v_1316X)) {
                                  goto L36475;}
                                else {
                                  if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                                    goto L36475;}
                                  else {
                                    arg0K0 = 4096;
                                    arg0K1 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 12)));
                                    goto L36572;}}}}
                            else {
                              goto L36415;}}
                          else {
                            goto L36415;}}}}}}
                else {
                  goto L41459;}}
              else {
                goto L41459;}}
            else {
              goto L41459;}}
          else {
            goto L41459;}}
        else {
          goto L41459;}}
      else {
        goto L41459;}}
      break;
    case 140 : {
      arg2_1317X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1317X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1317X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1318X = (((SvalS))>>2);
            len_1319X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1317X))) + -4))))>>8);
            if ((index_1318X < 0)) {
              goto L36841;}
            else {
              if ((index_1318X < len_1319X)) {
                x_1320X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                if ((1 == x_1320X)) {
                  arg0K0 = ((((*((unsigned char *) ((((char *) (-3 + arg2_1317X))) + index_1318X))))<<2));
                  goto L36840;}
                else {
                  index_1321X = ((index_1318X)<<2);
                  log_1322X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                  arg0K0 = 0;
                  goto L19720;}}
              else {
                goto L36841;}}}
          else {
            goto L41655;}}
        else {
          goto L41655;}}
      else {
        goto L41655;}}
      break;
    case 141 : {
      arg2_1323X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1324X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1324X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1324X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1323X))) {
            index_1325X = ((arg2_1323X)>>2);
            byte_1326X = SvalS;
            if ((3 == (3 & arg3_1324X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1324X))) + -4)))))) {
                if ((0 == (3 & byte_1326X))) {
                  len_1327X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1324X))) + -4))))>>8);
                  if ((index_1325X < 0)) {
                    goto L36967;}
                  else {
                    if ((index_1325X < len_1327X)) {
                      x_1328X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                      if ((1 == x_1328X)) {
                        *((unsigned char *) ((((char *) (-3 + arg3_1324X))) + index_1325X)) = (unsigned char) ((((byte_1326X)>>2)));
                        goto L36966;}
                      else {
                        index_1329X = ((index_1325X)<<2);
                        log_1330X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                        arg0K0 = 0;
                        goto L19896;}}
                    else {
                      goto L36967;}}}
                else {
                  goto L36932;}}
              else {
                goto L36932;}}
            else {
              goto L36932;}}
          else {
            goto L41760;}}
        else {
          goto L41760;}}
      else {
        goto L41760;}}
      break;
    case 142 : {
      SvalS = 529;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 143 : {
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 144 : {
      x_1331X = SvalS;push_exception_setupB(15, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1331X);
      arg0K0 = 1;
      goto L29353;}
      break;
    case 145 : {
      SvalS = 1;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 146 : {
      SvalS = 21;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 147 : {s48_make_availableAgc(2052);
      arg2_1332X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1333X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1334X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1334X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1334X))) + -4))))>>2))))) {
          if ((3 == (3 & arg2_1332X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1332X))) + -4))))>>2))))) {
              obj_1335X = SvalS;
              if ((3 == (3 & obj_1335X))) {
                if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1335X))) + -4))))>>2))))) {
                  undumpables_1336X = SvalS;
                  port_1337X = ps_open_output_file((((char *)(((char *) (-3 + arg4_1334X))))), &status_1338X);
                  if ((status_1338X == NO_ERRORS)) {
                    status_1339X = ps_write_string((((char *)(((char *) (-3 + arg2_1332X))))), port_1337X);
                    if ((status_1339X == NO_ERRORS)) {
                      status_1340X = s48_write_image(arg3_1333X, undumpables_1336X, port_1337X);
                      if ((status_1340X == NO_ERRORS)) {
                        status_1341X = ps_close(port_1337X);
                        if ((status_1341X == NO_ERRORS)) {
                          SvalS = 13;
                          Scode_pointerS = ((Scode_pointerS) + 1);
                          arg2K0 = (Scode_pointerS);
                          goto L31656;}
                        else {
                          arg0K0 = 24;
                          arg0K1 = status_1341X;
                          goto L51351;}}
                      else {
                        status_1342X = ps_close(port_1337X);
                        if ((status_1342X == NO_ERRORS)) {
                          arg0K0 = 24;
                          arg0K1 = status_1340X;
                          goto L51351;}
                        else {
                          ps_write_string("Unable to close image file", (stderr));
                          { long ignoreXX;
                          PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                          arg0K0 = 24;
                          arg0K1 = status_1340X;
                          goto L51351;}}}
                    else {
                      status_1343X = ps_close(port_1337X);
                      if ((status_1343X == NO_ERRORS)) {
                        arg0K0 = 24;
                        arg0K1 = status_1339X;
                        goto L51351;}
                      else {
                        ps_write_string("Unable to close image file", (stderr));
                        { long ignoreXX;
                        PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                        arg0K0 = 24;
                        arg0K1 = status_1339X;
                        goto L51351;}}}
                  else {
                    arg0K0 = 10;
                    arg0K1 = status_1338X;
                    goto L51351;}}
                else {
                  goto L56358;}}
              else {
                goto L56358;}}
            else {
              goto L56358;}}
          else {
            goto L56358;}}
        else {
          goto L56358;}}
      else {
        goto L56358;}}
      break;
    case 148 : {
      SvalS = 13;s48_collect();
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 149 : {
      obj_1344X = SvalS;
      if ((3 == (3 & obj_1344X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1344X))) + -4))))>>2))))) {
          x_1345X = Haction4930((SvalS));
          SvalS = (((x_1345X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L57071;}}
      else {
        goto L57071;}}
      break;
    case 150 : {s48_make_availableAgc(24);
      arg2_1346X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      proc_1347X = SvalS;
      if ((3 == (3 & arg2_1346X))) {
        if ((3 == (3 & proc_1347X))) {
          if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_1347X))) + -4))))>>2))))) {GET_PROPOSAL_LOCK();
            addr_1348X = s48_allocate_small(12);
            *((long *) addr_1348X) = (long) (2050);
            x_1349X = 3 + (((long) (addr_1348X + 4)));
            *((long *) (((char *) (-3 + x_1349X)))) = (long) (arg2_1346X);
            *((long *) ((((char *) (-3 + x_1349X))) + 4)) = (long) (proc_1347X);
            b_1350X = SHARED_REF((Sfinalizer_alistS));
            addr_1351X = s48_allocate_small(12);
            *((long *) addr_1351X) = (long) (2050);
            x_1352X = 3 + (((long) (addr_1351X + 4)));
            *((long *) (((char *) (-3 + x_1352X)))) = (long) (x_1349X);
            *((long *) ((((char *) (-3 + x_1352X))) + 4)) = (long) (b_1350X);SHARED_SETB((Sfinalizer_alistS), x_1352X);RELEASE_PROPOSAL_LOCK();
            SvalS = 13;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}
          else {
            goto L51626;}}
        else {
          goto L51626;}}
      else {
        goto L51626;}}
      break;
    case 151 : {
      arg2_1353X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1353X))) {
        key_1354X = ((arg2_1353X)>>2);
        other_1355X = SvalS;
        if ((5 == key_1354X)) {
          SvalS = (-4 & other_1355X);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          if ((0 == key_1354X)) {
            x_1356X = s48_available();
            SvalS = (((x_1356X)<<2));
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}
          else {
            if ((1 == key_1354X)) {
              bytes_1357X = s48_heap_size();
              SvalS = (-4 & (3 + bytes_1357X));
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31656;}
            else {
              if ((2 == key_1354X)) {
                SvalS = (((((Sstack_endS) - (Sstack_beginS)))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31656;}
              else {
                if ((3 == key_1354X)) {
                  x_1358X = s48_gc_count();
                  SvalS = (((x_1358X)<<2));
                  Scode_pointerS = ((Scode_pointerS) + 1);
                  arg2K0 = (Scode_pointerS);
                  goto L31656;}
                else {
                  if ((4 == key_1354X)) {push_exception_setupB(14, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1354X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1355X);
                    arg0K0 = 2;
                    goto L29353;}
                  else {push_exception_setupB(17, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1354X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1355X);
                    arg0K0 = 2;
                    goto L29353;}}}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1353X);
        x_1359X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1359X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 152 : {
      if ((0 == (3 & (SvalS)))) {
        type_1360X = (((SvalS))>>2);
        arg3K0 = 1;
        goto L54692;}
      else {push_exception_setupB(5, 1);
        x_1361X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1361X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 153 : {
      x_1362X = SvalS;
      arg3K0 = 1;
      arg0K1 = x_1362X;
      goto L60901;}
      break;
    case 154 : {
      SvalS = (Scurrent_threadS);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 155 : {
      Scurrent_threadS = (SvalS);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 156 : {
      val_1363X = SHARED_REF((Ssession_dataS));
      SvalS = val_1363X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 157 : {SHARED_SETB((Ssession_dataS), (SvalS));
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 158 : {
      obj_1364X = SvalS;
      if ((3 == (3 & obj_1364X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1364X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 194)) {
            goto L33392;}
          else {
            temp_1365X = SHARED_REF((Sexception_handlersS));SHARED_SETB((Sexception_handlersS), (SvalS));
            SvalS = temp_1365X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}}
        else {
          goto L33392;}}
      else {
        goto L33392;}}
      break;
    case 159 : {
      data_1366X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1367X = *((long *) ((((char *) (-3 + data_1366X))) + 8));
      exception_1368X = *((long *) ((((char *) (-3 + data_1366X))) + 12));
      size_1369X = *((long *) ((((char *) (-3 + data_1366X))) + 16));
      pc_1370X = (((*((long *) ((((char *) (-3 + data_1366X))) + 4))))>>2);
      opcode_1371X = *((unsigned char *) ((((char *) (-3 + code_1367X))) + pc_1370X));
      if ((opcode_1371X < 51)) {
        if ((4 == opcode_1371X)) {
          goto L31738;}
        else {
          Slast_code_calledS = code_1367X;
          Scode_pointerS = ((((char *) (-3 + code_1367X))) + pc_1370X);push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1368X);
          arg0K0 = 1;
          goto L29353;}}
      else {
        goto L31738;}}
      break;
    case 160 : {
      data_1372X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1373X = *((long *) ((((char *) (-3 + data_1372X))) + 8));
      exception_1374X = *((long *) ((((char *) (-3 + data_1372X))) + 12));
      opcode_1375X = (((*((long *) ((((char *) (-3 + data_1372X))) + 4))))>>2);
      if ((opcode_1375X < 51)) {
        if ((4 == opcode_1375X)) {
          goto L29614;}
        else {
          Slast_code_calledS = code_1373X;
          Scode_pointerS = (((char *) (-3 + code_1373X)));push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1374X);
          arg0K0 = 1;
          goto L29353;}}
      else {
        goto L29614;}}
      break;
    case 161 : {
      obj_1376X = SvalS;
      if ((3 == (3 & obj_1376X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1376X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 5)) {
            goto L32297;}
          else {
            temp_1377X = SHARED_REF((Sinterrupt_handlersS));SHARED_SETB((Sinterrupt_handlersS), (SvalS));
            SvalS = temp_1377X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31656;}}
        else {
          goto L32297;}}
      else {
        goto L32297;}}
      break;
    case 162 : {
      old_1378X = Senabled_interruptsS;
      p_1379X = SvalS;
      Senabled_interruptsS = (((p_1379X)>>2));
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L60949;}
        else {
          goto L60949;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L60949;}}
      break;
    case 163 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 0;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_0:
      pc_1380X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      code_1381X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      Slast_code_calledS = code_1381X;
      Scode_pointerS = ((((char *) (-3 + code_1381X))) + (((pc_1380X)>>2)));
      v_1382X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1382X;
      arg2K0 = (Scode_pointerS);
      goto L31656;}
      break;
    case 164 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 1;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_1:
      v_1383X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1383X;
      p_1384X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1385X = s48_call_native_procedure((SvalS), (((p_1384X)>>2)));
      arg0K0 = v_1385X;
      goto L58611;}
      break;
    case 165 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 2;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_2:
      return_address_1386X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      template_1387X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1388X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1388X;
      v_1389X = s48_jump_to_native_address(return_address_1386X, template_1387X);
      arg0K0 = v_1389X;
      goto L58611;}
      break;
    case 166 : {
      if ((0 == (3 & (SvalS)))) {
        p_1390X = SvalS;
        Spending_interruptsS = (-2 & (Spending_interruptsS));
        if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
          s48_Sstack_limitS = (Sreal_stack_limitS);
          if ((s48_Spending_eventsPS)) {
            s48_Sstack_limitS = (((char *) -1));
            goto L58168;}
          else {
            goto L58168;}}
        else {
          s48_Sstack_limitS = (((char *) -1));
          goto L58168;}}
      else {push_exception_setupB(5, 1);
        x_1391X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1391X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 167 : {
      arg2_1392X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1392X))) {
        x_1393X = SvalS;
        if ((1 == x_1393X)) {
          goto L55906;}
        else {
          if ((5 == x_1393X)) {
            goto L55906;}
          else {
            goto L55911;}}}
      else {
        goto L55911;}}
      break;
    case 168 : {
      p_1394X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      nargs_1395X = ((p_1394X)>>2);
      p_1396X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      rest_list_1397X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((14 < nargs_1395X)) {push_exception_setupB(19, 1);
        x_1398X = *((long *) ((SstackS) + (-4 + (-4 & p_1396X))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1398X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (nargs_1395X);
        arg0K0 = 2;
        goto L29353;}
      else {
        arg0K0 = rest_list_1397X;
        goto L37166;}}
      break;
    case 169 : {s48_make_availableAgc(20);
      arg2_1399X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1399X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1399X))) + -4))))>>2))))) {
          x_1400X = SvalS;
          if ((1 == x_1400X)) {
            goto L54787;}
          else {
            if ((5 == x_1400X)) {
              goto L54787;}
            else {
              goto L54792;}}}
        else {
          goto L54792;}}
      else {
        goto L54792;}}
      break;
    case 170 : {
      arg2_1401X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1401X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1401X))) + -4))))>>2))))) {
          x_1402X = SvalS;
          if ((1 == x_1402X)) {
            goto L40626;}
          else {
            if ((5 == x_1402X)) {
              goto L40626;}
            else {
              goto L40631;}}}
        else {
          goto L40631;}}
      else {
        goto L40631;}}
      break;
    case 171 : {
      arg3K0 = 1;
      goto L61009;}
      break;
    case 172 : {
      arg2_1403X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1403X))) {
        option_1404X = ((arg2_1403X)>>2);
        other_1405X = SvalS;
        if ((2 == option_1404X)) {
          x_1406X = CHEAP_TIME();
          SvalS = (((x_1406X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          if ((0 == option_1404X)) {
            seconds_1407X = s48_run_time(&mseconds_1408X);
            arg0K0 = option_1404X;
            arg0K1 = seconds_1407X;
            arg0K2 = mseconds_1408X;
            goto L57005;}
          else {
            if ((1 == option_1404X)) {
              seconds_1409X = s48_real_time(&mseconds_1410X);
              arg0K0 = option_1404X;
              arg0K1 = seconds_1409X;
              arg0K2 = mseconds_1410X;
              goto L57005;}
            else {push_exception_setupB(17, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) ((((option_1404X)<<2)));
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (other_1405X);
              arg0K0 = 2;
              goto L29353;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1403X);
        x_1411X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1411X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 173 : {
      if ((0 == (3 & (SvalS)))) {
        key_1412X = (((SvalS))>>2);
        if ((0 == key_1412X)) {
          string_1413X = s48_get_os_string_encoding();
          val_1414X = enter_stringAgc_n(string_1413X, (strlen((char *) string_1413X)));
          SvalS = val_1414X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {push_exception_setupB(17, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((key_1412X)<<2)));
          arg0K0 = 1;
          goto L29353;}}
      else {push_exception_setupB(5, 1);
        x_1415X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1415X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 174 : {
      arg2_1416X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1416X))) {
        key_1417X = ((arg2_1416X)>>2);
        value_1418X = SvalS;
        status_1419X = s48_extended_vm(key_1417X, value_1418X);
        if ((0 == status_1419X)) {
          SvalS = (s48_Sextension_valueS);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          if ((1 == status_1419X)) {push_exception_setupB(22, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1417X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1418X);
            arg0K0 = 2;
            goto L29353;}
          else {push_exception_setupB(23, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1417X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1418X);
            arg0K0 = 2;
            goto L29353;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1416X);
        x_1420X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1420X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 175 : {
      arg2_1421X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1422X = SvalS;
      Senabled_interruptsS = -1;
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L61066;}
        else {
          goto L61066;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L61066;}}
      break;
    case 176 : {
      arg2_1423X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1423X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1423X))) + -4))))>>2))))) {
          obj_1424X = SvalS;
          if ((3 == (3 & obj_1424X))) {
            if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1424X))) + -4))))>>2))))) {
              x_1425X = SvalS;
              len_1426X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1423X))) + -4))))>>8);
              if ((len_1426X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1425X))) + -4))))>>8)))) {
                if (((!memcmp((void *)(((char *) (-3 + x_1425X))), (void *)(((char *) (-3 + arg2_1423X))),len_1426X)))) {
                  arg0K0 = 5;
                  goto L49226;}
                else {
                  arg0K0 = 1;
                  goto L49226;}}
              else {
                arg0K0 = 1;
                goto L49226;}}
            else {
              goto L49191;}}
          else {
            goto L49191;}}
        else {
          goto L49191;}}
      else {
        goto L49191;}}
      break;
    case 177 : {s48_make_availableAgc((4 + (-4 & (3 + (-4 & (SvalS))))));
      arg2_1427X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        n_1428X = (((SvalS))>>2);
        if ((3 == (3 & arg2_1427X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1427X))) + -4))))>>2))))) {
            goto L48427;}
          else {
            goto L48379;}}
        else {
          goto L48379;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1427X);
        x_1429X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1429X);
        arg0K0 = 2;
        goto L29353;}}
      break;
    case 178 : {
      arg2_1430X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      list_1431X = SvalS;
      arg0K0 = list_1431X;
      arg0K1 = list_1431X;
      arg3K2 = 1;
      goto L50369;}
      break;
    case 179 : {
      if ((529 == (SvalS))) {push_exception_setupB(0, 1);
        arg0K0 = 0;
        goto L29353;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}}
      break;
    case 180 : {
      arg2_1432X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1433X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        index_1434X = (((SvalS))>>2);
        if ((3 == (3 & arg3_1433X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1433X))) + -4))))>>2))))) {
            if ((arg2_1432X == (*((long *) (((char *) (-3 + arg3_1433X))))))) {
              len_1435X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1433X))) + -4))))>>8))))>>2);
              if ((index_1434X < 0)) {
                goto L37498;}
              else {
                if ((index_1434X < len_1435X)) {
                  v_1436X = *((unsigned char *) ((Scode_pointerS) + 1));
                  if ((0 == v_1436X)) {
                    goto L37488;}
                  else {
                    if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                      goto L37488;}
                    else {
                      merged_arg0K0 = arg3_1433X;
                      merged_arg0K1 = (((index_1434X)<<2));
                      proposal_d_read_return_tag = 2;
                      goto proposal_d_read;
                     proposal_d_read_return_2:
                      v_1437X = proposal_d_read0_return_value;
                      arg0K0 = v_1437X;
                      goto L37497;}}}
                else {
                  goto L37498;}}}
            else {
              goto L37518;}}
          else {
            goto L37518;}}
        else {
          goto L37518;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1433X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1432X);
        x_1438X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1438X);
        arg0K0 = 3;
        goto L29353;}}
      break;
    case 181 : {
      arg2_1439X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1440X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1441X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1439X))) {
        index_1442X = ((arg2_1439X)>>2);
        value_1443X = SvalS;
        if ((3 == (3 & arg4_1441X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1441X))) + -4))))>>2))))) {
            if ((arg3_1440X == (*((long *) (((char *) (-3 + arg4_1441X))))))) {
              if ((3 == (3 & arg4_1441X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1441X))) + -4)))))) {
                  len_1444X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1441X))) + -4))))>>8))))>>2);
                  if ((index_1442X < 0)) {
                    goto L37756;}
                  else {
                    if ((index_1442X < len_1444X)) {
                      v_1445X = *((unsigned char *) ((Scode_pointerS) + 1));
                      if ((0 == v_1445X)) {
                        goto L37746;}
                      else {
                        if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                          goto L37746;}
                        else {
                          merged_arg0K0 = arg4_1441X;
                          merged_arg0K1 = (((index_1442X)<<2));
                          merged_arg0K2 = value_1443X;
                          proposal_d_write_return_tag = 2;
                          goto proposal_d_write;
                         proposal_d_write_return_2:
                          goto L37755;}}}
                    else {
                      goto L37756;}}}
                else {
                  goto L37778;}}
              else {
                goto L37778;}}
            else {
              goto L37778;}}
          else {
            goto L37778;}}
        else {
          goto L37778;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1441X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1440X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1439X);
        x_1446X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1446X);
        arg0K0 = 4;
        goto L29353;}}
      break;
    case 182 : {
      arg2_1447X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1448X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1449X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1450X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg5_1450X))) {
        if ((9 == (255 & arg4_1449X))) {
          if ((3 == (3 & arg3_1448X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1448X))) + -4))))>>2))))) {
              if ((0 == (3 & (arg2_1447X | (SvalS))))) {
                encoding_1451X = ((arg5_1450X)>>2);
                value_1452X = ((arg4_1449X)>>8);
                start_1453X = ((arg2_1447X)>>2);
                count_1454X = (((SvalS))>>2);
                if ((3 == (3 & arg3_1448X))) {
                  if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1448X))) + -4)))))) {
                    if ((start_1453X < 0)) {
                      goto L29972;}
                    else {
                      if ((count_1454X < 0)) {
                        goto L29972;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1448X))) + -4))))>>8)) < (start_1453X + count_1454X))) {
                          goto L29972;}
                        else {
                          encoding_okP_1455X = encode_scalar_value(encoding_1451X, value_1452X, ((((char *) (-3 + arg3_1448X))) + start_1453X), count_1454X, &okP_1456X, &out_of_spaceP_1457X, &count_1458X);
                          if (encoding_okP_1455X) {
                            if (okP_1456X) {
                              if (out_of_spaceP_1457X) {
                                arg0K0 = 1;
                                goto L30024;}
                              else {
                                arg0K0 = 5;
                                goto L30024;}}
                            else {
                              arg0K0 = 1;
                              goto L30024;}}
                          else {push_exception_setupB(17, 1);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) ((((encoding_1451X)<<2)));
                            arg0K0 = 1;
                            goto L29353;}}}}}
                  else {
                    goto L29972;}}
                else {
                  goto L29972;}}
              else {
                goto L30702;}}
            else {
              goto L30702;}}
          else {
            goto L30702;}}
        else {
          goto L30702;}}
      else {
        goto L30702;}}
      break;
    case 183 : {
      arg2_1459X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1460X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1461X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1462X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg5_1462X))) {
        if ((9 == (255 & arg4_1461X))) {
          if ((3 == (3 & arg3_1460X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1460X))) + -4))))>>2))))) {
              if ((0 == (3 & (arg2_1459X | (SvalS))))) {
                encoding_1463X = ((arg5_1462X)>>2);
                value_1464X = ((arg4_1461X)>>8);
                start_1465X = ((arg2_1459X)>>2);
                count_1466X = (((SvalS))>>2);
                if ((3 == (3 & arg3_1460X))) {
                  if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1460X))) + -4)))))) {
                    if ((start_1465X < 0)) {
                      goto L48582;}
                    else {
                      if ((count_1466X < 0)) {
                        goto L48582;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1460X))) + -4))))>>8)) < (start_1465X + count_1466X))) {
                          goto L48582;}
                        else {
                          encoding_okP_1467X = encode_scalar_value(encoding_1463X, value_1464X, ((((char *) (-3 + arg3_1460X))) + start_1465X), count_1466X, &okP_1468X, &out_of_spaceP_1469X, &count_1470X);
                          if (encoding_okP_1467X) {
                            SvalS = 13;
                            Scode_pointerS = ((Scode_pointerS) + 1);
                            arg2K0 = (Scode_pointerS);
                            goto L31656;}
                          else {push_exception_setupB(17, 1);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) ((((encoding_1463X)<<2)));
                            arg0K0 = 1;
                            goto L29353;}}}}}
                  else {
                    goto L48582;}}
                else {
                  goto L48582;}}
              else {
                goto L55190;}}
            else {
              goto L55190;}}
          else {
            goto L55190;}}
        else {
          goto L55190;}}
      else {
        goto L55190;}}
      break;
    case 184 : {
      arg2_1471X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1472X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1473X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg4_1473X))) {
        if ((3 == (3 & arg3_1472X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1472X))) + -4))))>>2))))) {
            if ((0 == (3 & (arg2_1471X | (SvalS))))) {
              encoding_1474X = ((arg4_1473X)>>2);
              start_1475X = ((arg2_1471X)>>2);
              count_1476X = (((SvalS))>>2);
              if ((start_1475X < 0)) {
                goto L30257;}
              else {
                if ((count_1476X < 0)) {
                  goto L30257;}
                else {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1472X))) + -4))))>>8)) < (start_1475X + count_1476X))) {
                    goto L30257;}
                  else {
                    encoding_okP_1477X = decode_scalar_value(encoding_1474X, ((((char *) (-3 + arg3_1472X))) + start_1475X), count_1476X, &okP_1478X, &incompleteP_1479X, &value_1480X, &count_1481X);
                    if (encoding_okP_1477X) {
                      if (okP_1478X) {
                        if (incompleteP_1479X) {
                          arg0K0 = 1;
                          goto L30323;}
                        else {
                          arg0K0 = (9 + (((value_1480X)<<8)));
                          goto L30323;}}
                      else {
                        arg0K0 = 1;
                        goto L30323;}}
                    else {push_exception_setupB(17, 1);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) ((((encoding_1474X)<<2)));
                      arg0K0 = 1;
                      goto L29353;}}}}}
            else {
              goto L30898;}}
          else {
            goto L30898;}}
        else {
          goto L30898;}}
      else {
        goto L30898;}}
      break;
    case 185 : {
      arg2_1482X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1483X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1484X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg4_1484X))) {
        if ((3 == (3 & arg3_1483X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1483X))) + -4))))>>2))))) {
            if ((0 == (3 & (arg2_1482X | (SvalS))))) {
              encoding_1485X = ((arg4_1484X)>>2);
              start_1486X = ((arg2_1482X)>>2);
              count_1487X = (((SvalS))>>2);
              if ((start_1486X < 0)) {
                goto L48801;}
              else {
                if ((count_1487X < 0)) {
                  goto L48801;}
                else {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1483X))) + -4))))>>8)) < (start_1486X + count_1487X))) {
                    goto L48801;}
                  else {
                    encoding_okP_1488X = decode_scalar_value(encoding_1485X, ((((char *) (-3 + arg3_1483X))) + start_1486X), count_1487X, &okP_1489X, &incompleteP_1490X, &value_1491X, &count_1492X);
                    if (encoding_okP_1488X) {
                      SvalS = 13;
                      Scode_pointerS = ((Scode_pointerS) + 1);
                      arg2K0 = (Scode_pointerS);
                      goto L31656;}
                    else {push_exception_setupB(17, 1);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) ((((encoding_1485X)<<2)));
                      arg0K0 = 1;
                      goto L29353;}}}}}
            else {
              goto L55386;}}
          else {
            goto L55386;}}
        else {
          goto L55386;}}
      else {
        goto L55386;}}
      break;
    case 186 : {
      v_1493X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1493X)) {
        arg0K0 = (SvalS);
        goto L38035;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 0;
        goto get_current_port;
       get_current_port_return_0:
        v_1494X = get_current_port0_return_value;
        arg0K0 = v_1494X;
        goto L38035;}}
      break;
    case 187 : {
      v_1495X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1495X)) {
        arg0K0 = (SvalS);
        goto L38237;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 1;
        goto get_current_port;
       get_current_port_return_1:
        v_1496X = get_current_port0_return_value;
        arg0K0 = v_1496X;
        goto L38237;}}
      break;
    case 188 : {
      v_1497X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1497X)) {
        v_1498X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1498X;
        arg0K1 = (SvalS);
        goto L38432;}
      else {
        merged_arg0K0 = 4;
        get_current_port_return_tag = 2;
        goto get_current_port;
       get_current_port_return_2:
        v_1499X = get_current_port0_return_value;
        arg0K0 = (SvalS);
        arg0K1 = v_1499X;
        goto L38432;}}
      break;
    case 189 : {
      v_1500X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1500X)) {
        arg0K0 = (SvalS);
        goto L38701;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 3;
        goto get_current_port;
       get_current_port_return_3:
        v_1501X = get_current_port0_return_value;
        arg0K0 = v_1501X;
        goto L38701;}}
      break;
    case 190 : {
      v_1502X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1502X)) {
        arg0K0 = (SvalS);
        goto L39292;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 4;
        goto get_current_port;
       get_current_port_return_4:
        v_1503X = get_current_port0_return_value;
        arg0K0 = v_1503X;
        goto L39292;}}
      break;
    case 191 : {
      v_1504X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1504X)) {
        v_1505X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1505X;
        arg0K1 = (SvalS);
        goto L39803;}
      else {
        merged_arg0K0 = 4;
        get_current_port_return_tag = 5;
        goto get_current_port;
       get_current_port_return_5:
        v_1506X = get_current_port0_return_value;
        arg0K0 = (SvalS);
        arg0K1 = v_1506X;
        goto L39803;}}
      break;
    case 192 : {s48_make_availableAgc(2052);
      if ((0 == (3 & (SvalS)))) {
        merged_arg0K0 = ((((SvalS))>>2));
        merged_arg0K1 = 0;
        get_error_string_return_tag = 2;
        goto get_error_string;
       get_error_string_return_2:
        val_1507X = get_error_string0_return_value;
        SvalS = val_1507X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {push_exception_setupB(5, 1);
        x_1508X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1508X);
        arg0K0 = 1;
        goto L29353;}}
      break;
    case 193 : {
      x_1509X = SvalS;
      out_1510X = stderr;
      arg0K0 = x_1509X;
      goto L50622;}
      break;
  }}
 L28428: {
  i_1511X = arg0K0;
  m_1512X = arg0K1;
  if ((0 == (n_970X & m_1512X))) {
    arg0K0 = (1 + i_1511X);
    arg0K1 = (((m_1512X)<<1));
    goto L28428;}
  else {
    Spending_interruptsS = ((Spending_interruptsS) & (~ m_1512X));
    handlers_1513X = SHARED_REF((Sinterrupt_handlersS));
    if ((i_1511X == 0)) {
      x_1514X = Sinterrupted_templateS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1514X);
      Sinterrupted_templateS = 1;
      n_1515X = Senabled_interruptsS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_1515X)<<2)));
      arg0K0 = 2;
      goto L28385;}
    else {
      if ((i_1511X == 2)) {
        x_1516X = Sfinalize_theseS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1516X);
        Sfinalize_theseS = 25;
        n_1517X = Senabled_interruptsS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((n_1517X)<<2)));
        arg0K0 = 2;
        goto L28385;}
      else {
        if ((i_1511X == 3)) {
          channel_1518X = Spending_channels_headS;
          next_1519X = *((long *) ((((char *) (-3 + channel_1518X))) + 16));
          Spending_channels_headS = next_1519X;
          addr_1520X = (((char *) (-3 + channel_1518X))) + 16;S48_WRITE_BARRIER(channel_1518X, addr_1520X, 1);
          *((long *) addr_1520X) = (long) (1);
          if ((1 == next_1519X)) {
            Spending_channels_tailS = 1;
            arg0K0 = channel_1518X;
            goto L15146;}
          else {
            arg0K0 = channel_1518X;
            goto L15146;}}
        else {
          if ((i_1511X == 4)) {
            v_1521X = (Sos_signal_ring_startS) == (Sos_signal_ring_endS);
            if (v_1521X) {
              ps_error("This cannot happen: OS signal ring empty", 0);
              goto L15330;}
            else {
              goto L15330;}}
          else {
            n_1522X = Senabled_interruptsS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((n_1522X)<<2)));
            arg0K0 = 1;
            goto L28385;}}}}}}
 L58615: {
  tag_1523X = arg0K0;
  if ((tag_1523X == 0)) {
    arg0K0 = (s48_Snative_protocolS);
    arg0K1 = 25;
    arg0K2 = 0;
    goto L28781;}
  else {
    if ((tag_1523X == 1)) {
      stack_arg_count_1524X = s48_Snative_protocolS;
      obj_1525X = SvalS;
      if ((3 == (3 & obj_1525X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1525X))) + -4))))>>2))))) {
          arg0K0 = stack_arg_count_1524X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59401;}
        else {
          arg0K0 = 3;
          arg0K1 = stack_arg_count_1524X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L29043;}}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1524X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L29043;}}
    else {
      if ((tag_1523X == 2)) {
        template_1526X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        return_address_1527X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        pending_interruptP_return_tag = 4;
        goto pending_interruptP;
       pending_interruptP_return_4:
        v_1528X = pending_interruptP0_return_value;
        if (v_1528X) {
          x_1529X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1529X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (template_1526X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (return_address_1527X);
          x_1530X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1530X);
          x_1531X = Scurrent_threadS;
          addr_1532X = (((char *) (-3 + x_1531X))) + 12;S48_WRITE_BARRIER(x_1531X, addr_1532X, 1);
          *((long *) addr_1532X) = (long) (1);
          n_1533X = Senabled_interruptsS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((n_1533X)<<2)));
          code_1534X = Snative_poll_return_codeS;
          v_1535X = ((((ScontS) - (SstackS)))>>2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((4 + (((v_1535X)<<2))));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_1534X))) + 13))));
          ScontS = (SstackS);
          goto L28375;}
        else {
          v_1536X = s48_jump_to_native_address(return_address_1527X, template_1526X);
          arg0K0 = v_1536X;
          goto L58615;}}
      else {
        if ((tag_1523X == 3)) {
          arg0K0 = (s48_Snative_protocolS);
          arg0K1 = 25;
          arg0K2 = 0;
          goto L28781;}
        else {
          if ((tag_1523X == 4)) {
            arg2K0 = (Scode_pointerS);
            goto L31656;}
          else {
            if ((tag_1523X == 5)) {
              maybe_cont_1537X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              stack_nargs_1538X = s48_Snative_protocolS;
              list_args_1539X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              merged_arg0K0 = list_args_1539X;
              okay_argument_list_return_tag = 1;
              goto okay_argument_list;
             okay_argument_list_return_1:
              okayP_1540X = okay_argument_list0_return_value;
              length_1541X = okay_argument_list1_return_value;
              if (okayP_1540X) {
                if ((0 == maybe_cont_1537X)) {
                  merged_arg0K0 = stack_nargs_1538X;
                  move_args_above_contB_return_tag = 5;
                  goto move_args_above_contB;
                 move_args_above_contB_return_5:
                  arg0K0 = stack_nargs_1538X;
                  arg0K1 = list_args_1539X;
                  arg0K2 = length_1541X;
                  goto L58352;}
                else {
                  ScontS = ((SstackS) + (((stack_nargs_1538X)<<2)));
                  *((long *) (ScontS)) = (long) ((((long) (((char *) maybe_cont_1537X)))));
                  arg0K0 = stack_nargs_1538X;
                  arg0K1 = list_args_1539X;
                  arg0K2 = length_1541X;
                  goto L58352;}}
              else {
                merged_arg0K0 = list_args_1539X;
                merged_arg0K1 = stack_nargs_1538X;
                pop_args_GlistSAgc_return_tag = 2;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_2:
                args_1542X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
                x_1543X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1543X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1542X);
                arg0K0 = 2;
                goto L29353;}}
            else {
              if ((tag_1523X == 6)) {push_exception_setupB(15, 1);
                x_1544X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1544X);
                arg0K0 = 1;
                goto L29353;}
              else {
                ps_error("unexpected native return value", 1, tag_1523X);
                arg0K0 = v_1545X;
                goto L63891;}}}}}}}}
 L32108: {
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L11333: {
  new_env_1546X = arg0K0;
  i_1547X = arg0K1;
  offset_1548X = arg0K2;
  total_count_1549X = arg0K3;
  arg0K0 = (*((unsigned char *) ((Scode_pointerS) + (1 + offset_1548X))));
  arg0K1 = i_1547X;
  arg0K2 = (1 + offset_1548X);
  goto L11339;}
 L21847: {
  count_1550X = arg0K0;
  i_1551X = arg0K1;
  offset_1552X = arg0K2;
  if ((0 == count_1550X)) {
    arg0K0 = new_env_1000X;
    arg0K1 = i_1551X;
    arg0K2 = offset_1552X;
    arg0K3 = total_count_996X;
    goto L11333;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_1001X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1552X)))))<<2)))));
    merged_arg0K1 = new_env_1000X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 0;
    goto make_closure;
   make_closure_return_0:
    value_1553X = make_closure0_return_value;
    addr_1554X = (((char *) (-3 + new_env_1000X))) + (((i_1551X)<<2));S48_WRITE_BARRIER(new_env_1000X, addr_1554X, value_1553X);
    *((long *) addr_1554X) = (long) (value_1553X);
    arg0K0 = (-1 + count_1550X);
    arg0K1 = (1 + i_1551X);
    arg0K2 = (1 + offset_1552X);
    goto L21847;}}
 L14083: {
  new_env_1555X = arg0K0;
  i_1556X = arg0K1;
  offset_1557X = arg0K2;
  total_count_1558X = arg0K3;
  arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1557X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1557X)))));
  arg0K1 = i_1556X;
  arg0K2 = (2 + offset_1557X);
  goto L14089;}
 L21908: {
  count_1559X = arg0K0;
  i_1560X = arg0K1;
  offset_1561X = arg0K2;
  if ((0 == count_1559X)) {
    arg0K0 = new_env_1006X;
    arg0K1 = i_1560X;
    arg0K2 = offset_1561X;
    arg0K3 = total_count_1002X;
    goto L14083;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_1007X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1561X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1561X))))))<<2)))));
    merged_arg0K1 = new_env_1006X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 1;
    goto make_closure;
   make_closure_return_1:
    value_1562X = make_closure0_return_value;
    addr_1563X = (((char *) (-3 + new_env_1006X))) + (((i_1560X)<<2));S48_WRITE_BARRIER(new_env_1006X, addr_1563X, value_1562X);
    *((long *) addr_1563X) = (long) (value_1562X);
    arg0K0 = (-1 + count_1559X);
    arg0K1 = (1 + i_1560X);
    arg0K2 = (2 + offset_1561X);
    goto L21908;}}
 L34289: {
  i_1564X = arg0K0;
  if ((0 == i_1564X)) {
    SvalS = closure_1018X;
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    value_1565X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + closure_1018X))) + (((i_1564X)<<2)))) = (long) (value_1565X);
    arg0K0 = (-1 + i_1564X);
    goto L34289;}}
 L60176: {
  n_1566X = arg0K0;
  if ((0 == n_1566X)) {
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    arg0K0 = (-1 + n_1566X);
    goto L60176;}}
 L33623: {
  move_1567X = arg0K0;
  if ((move_1567X == n_moves_1026X)) {
    value_1568X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1568X;
    Scode_pointerS = ((Scode_pointerS) + (2 + (((n_moves_1026X)<<1))));
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    index_1569X = 1 + (((move_1567X)<<1));
    *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (2 + index_1569X)))))<<2)))) = (long) ((*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1569X)))))<<2))))));
    arg0K0 = (1 + move_1567X);
    goto L33623;}}
 L33540: {
  move_1570X = arg0K0;
  if ((move_1570X == n_moves_1028X)) {
    value_1571X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1571X;
    Scode_pointerS = ((Scode_pointerS) + (3 + (((n_moves_1028X)<<2))));
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    index_1572X = 2 + (((move_1570X)<<2));
    value_1573X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1572X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1572X))))))<<2))));
    index_1574X = 2 + index_1572X;
    *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1574X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1574X))))))<<2)))) = (long) (value_1573X);
    arg0K0 = (1 + move_1570X);
    goto L33540;}}
 L60245: {
  value_1575X = arg0K0;
  SvalS = value_1575X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L59328: {
  stack_arg_count_1576X = arg0K0;
  obj_1577X = SvalS;
  if ((3 == (3 & obj_1577X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1577X))) + -4))))>>2))))) {
      template_1578X = *((long *) (((char *) (-3 + (SvalS)))));
      code_1579X = *((long *) (((char *) (-3 + template_1578X))));
      protocol_1580X = *((unsigned char *) ((((char *) (-3 + code_1579X))) + 1));
      if ((protocol_1580X == stack_arg_count_1576X)) {
        arg0K0 = code_1579X;
        arg0K1 = 2;
        arg0K2 = 3;
        arg0K3 = template_1578X;
        goto L28169;}
      else {
        if (((127 & protocol_1580X) == stack_arg_count_1576X)) {
          if (((SstackS) < (s48_Sstack_limitS))) {
            interruptP_1581X = (s48_Sstack_limitS) == (((char *) -1));
            s48_Sstack_limitS = (Sreal_stack_limitS);
            if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
              if (((SstackS) < (Sreal_stack_limitS))) {
                ps_error("VM's stack is too small (how can this happen?)", 0);
                if (interruptP_1581X) {
                  goto L58814;}
                else {
                  goto L58821;}}
              else {
                if (interruptP_1581X) {
                  goto L58814;}
                else {
                  goto L58821;}}}
            else {
              if (interruptP_1581X) {
                goto L58814;}
              else {
                goto L58821;}}}
          else {
            goto L58821;}}
        else {
          arg0K0 = stack_arg_count_1576X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59401;}}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1576X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L29043;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_1576X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L29043;}}
 L29156: {
  obj_1582X = SvalS;
  if ((3 == (3 & obj_1582X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1582X))) + -4))))>>2))))) {
      arg0K0 = stack_arg_count_1032X;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L59401;}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1032X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L29043;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_1032X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L29043;}}
 L60271: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L58352: {
  stack_arg_count_1583X = arg0K0;
  list_args_1584X = arg0K1;
  list_arg_count_1585X = arg0K2;
  if ((0 == list_arg_count_1585X)) {
    obj_1586X = SvalS;
    if ((3 == (3 & obj_1586X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1586X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1583X;
        arg0K1 = 25;
        arg0K2 = 0;
        arg0K3 = -1;
        goto L59401;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1583X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L29043;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1583X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L29043;}}
  else {
    obj_1587X = SvalS;
    if ((3 == (3 & obj_1587X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1587X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1583X;
        arg0K1 = list_args_1584X;
        arg0K2 = list_arg_count_1585X;
        arg0K3 = -1;
        goto L59401;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1583X;
        arg0K2 = list_args_1584X;
        arg0K3 = list_arg_count_1585X;
        goto L29043;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1583X;
      arg0K2 = list_args_1584X;
      arg0K3 = list_arg_count_1585X;
      goto L29043;}}}
 L20844: {
  list_args_1588X = arg0K0;
  stack_nargs_1589X = arg0K1;
  merged_arg0K0 = list_args_1588X;
  okay_argument_list_return_tag = 2;
  goto okay_argument_list;
 okay_argument_list_return_2:
  okayP_1590X = okay_argument_list0_return_value;
  list_arg_count_1591X = okay_argument_list1_return_value;
  if (okayP_1590X) {
    arg0K0 = stack_nargs_1589X;
    arg0K1 = list_args_1588X;
    arg0K2 = list_arg_count_1591X;
    goto L58352;}
  else {
    merged_arg0K0 = list_args_1588X;
    merged_arg0K1 = stack_nargs_1589X;
    pop_args_GlistSAgc_return_tag = 3;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_3:
    args_1592X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
    x_1593X = SvalS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1593X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1592X);
    arg0K0 = 2;
    goto L29353;}}
 L20889: {
  list_1594X = arg0K0;
  follower_1595X = arg0K1;
  if ((25 == list_1594X)) {
    list_args_1596X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + follower_1595X))) + 4)))))));
    addr_1597X = (((char *) (-3 + follower_1595X))) + 4;S48_WRITE_BARRIER(follower_1595X, addr_1597X, list_args_1596X);
    *((long *) addr_1597X) = (long) (list_args_1596X);
    arg0K0 = rest_list_1047X;
    arg0K1 = (-1 + stack_nargs_1046X);
    goto L20844;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + list_1594X))) + 4)));
    arg0K1 = (*((long *) ((((char *) (-3 + follower_1595X))) + 4)));
    goto L20889;}}
 L29114: {
  obj_1598X = SvalS;
  if ((3 == (3 & obj_1598X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1598X))) + -4))))>>2))))) {
      arg0K0 = 0;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L59401;}
    else {
      arg0K0 = 3;
      arg0K1 = 0;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L29043;}}
  else {
    arg0K0 = 3;
    arg0K1 = 0;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L29043;}}
 L29123: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = cont_1049X;
  ScontS = (Sbottom_of_stackS);
  goto L29114;}
 L58939: {
  code_pointer_1599X = ((char *) (*((long *) (ScontS))));
  protocol_1600X = *((unsigned char *) (code_pointer_1599X + 1));
  if ((1 == protocol_1600X)) {
    goto L58956;}
  else {
    if ((66 == protocol_1600X)) {
      goto L58956;}
    else {
      if ((129 == protocol_1600X)) {
        arg0K0 = 2;
        goto L58741;}
      else {
        if ((194 == protocol_1600X)) {
          arg0K0 = 2;
          goto L58741;}
        else {
          if ((71 == protocol_1600X)) {
            cont_1601X = Sheap_continuationS;
            if ((3 == (3 & cont_1601X))) {
              if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1601X))) + -4))))>>2))))) {
                merged_arg0K0 = cont_1601X;
                merged_arg0K1 = 0;
                copy_continuation_from_heapB_return_tag = 1;
                goto copy_continuation_from_heapB;
               copy_continuation_from_heapB_return_1:
                goto L58939;}
              else {
                arg0K0 = cont_1601X;
                goto L29699;}}
            else {
              arg0K0 = cont_1601X;
              goto L29699;}}
          else {
            if ((70 == protocol_1600X)) {
              offset_1602X = ((((*((unsigned char *) (code_pointer_1599X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1599X + 3)));
              proc_1603X = *((long *) ((ScontS) + 4));
              if ((0 == offset_1602X)) {
                cont_1604X = ScontS;
                pointer_1605X = (((char *) (*((long *) cont_1604X)))) + -2;
                size_1606X = ((((*((unsigned char *) pointer_1605X)))<<8)) + (*((unsigned char *) (pointer_1605X + 1)));
                if ((65535 == size_1606X)) {
                  arg0K0 = ((((*((long *) (cont_1604X + 4))))>>2));
                  goto L59100;}
                else {
                  arg0K0 = size_1606X;
                  goto L59100;}}
              else {
                ScontS = ((ScontS) + 4);
                *((long *) (ScontS)) = (long) ((((long) (code_pointer_1599X + offset_1602X))));
                SstackS = (ScontS);
                goto L59005;}}
            else {
              if ((65 == protocol_1600X)) {
                wants_stack_args_1607X = ((((*((unsigned char *) (code_pointer_1599X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1599X + 3)));
                if ((0 == wants_stack_args_1607X)) {
                  pop_continuationB_return_tag = 0;
                  goto pop_continuationB;
                 pop_continuationB_return_0:s48_make_availableAgc(12);
                  a_1608X = SvalS;
                  addr_1609X = s48_allocate_small(12);
                  *((long *) addr_1609X) = (long) (2050);
                  x_1610X = 3 + (((long) (addr_1609X + 4)));
                  *((long *) (((char *) (-3 + x_1610X)))) = (long) (a_1608X);
                  *((long *) ((((char *) (-3 + x_1610X))) + 4)) = (long) (25);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (x_1610X);
                  Scode_pointerS = ((Scode_pointerS) + 4);
                  arg2K0 = (Scode_pointerS);
                  goto L31656;}
                else {
                  if ((1 == wants_stack_args_1607X)) {
                    pop_continuationB_return_tag = 1;
                    goto pop_continuationB;
                   pop_continuationB_return_1:
                    x_1611X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1611X);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (25);
                    Scode_pointerS = ((Scode_pointerS) + 4);
                    arg2K0 = (Scode_pointerS);
                    goto L31656;}
                  else {
                    x_1612X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1612X);
                    merged_arg0K0 = 25;
                    merged_arg0K1 = 1;
                    pop_args_GlistSAgc_return_tag = 4;
                    goto pop_args_GlistSAgc;
                   pop_args_GlistSAgc_return_4:
                    args_1613X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (args_1613X);
                    arg0K0 = 2;
                    goto L29353;}}}
              else {
                x_1614X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1614X);
                merged_arg0K0 = 25;
                merged_arg0K1 = 1;
                pop_args_GlistSAgc_return_tag = 5;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_5:
                args_1615X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1615X);
                arg0K0 = 2;
                goto L29353;}}}}}}}}
 L28781: {
  stack_nargs_1616X = arg0K0;
  list_args_1617X = arg0K1;
  list_arg_count_1618X = arg0K2;
  code_pointer_1619X = ((char *) (*((long *) (ScontS))));
  protocol_1620X = *((unsigned char *) (code_pointer_1619X + 1));
  if ((1 == protocol_1620X)) {
    if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
      if ((1 == stack_nargs_1616X)) {
        v_1621X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1621X;
        goto L28870;}
      else {
        arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
        goto L28870;}}
    else {
      arg0K0 = stack_nargs_1616X;
      arg0K1 = list_args_1617X;
      goto L29782;}}
  else {
    if ((66 == protocol_1620X)) {
      pop_continuationB_return_tag = 2;
      goto pop_continuationB;
     pop_continuationB_return_2:
      arg0K0 = 1;
      goto L32080;}
    else {
      if ((127 < protocol_1620X)) {
        if ((129 == protocol_1620X)) {
          if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
            if ((1 == stack_nargs_1616X)) {
              v_1622X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              arg0K0 = v_1622X;
              goto L59285;}
            else {
              arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
              goto L59285;}}
          else {
            merged_arg0K0 = list_args_1617X;
            merged_arg0K1 = stack_nargs_1616X;
            pop_args_GlistSAgc_return_tag = 6;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_6:
            args_1623X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1623X);
            arg0K0 = 2;
            goto L29353;}}
        else {
          if ((194 == protocol_1620X)) {
            arg0K0 = 2;
            goto L58741;}
          else {
            ps_error("unknown native return protocol", 1, protocol_1620X);
            merged_arg0K0 = list_args_1617X;
            merged_arg0K1 = stack_nargs_1616X;
            pop_args_GlistSAgc_return_tag = 7;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_7:
            args_1624X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1624X);
            arg0K0 = 2;
            goto L29353;}}}
      else {
        if ((71 == protocol_1620X)) {
          cont_1625X = Sheap_continuationS;
          if ((3 == (3 & cont_1625X))) {
            if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1625X))) + -4))))>>2))))) {
              merged_arg0K0 = cont_1625X;
              merged_arg0K1 = stack_nargs_1616X;
              copy_continuation_from_heapB_return_tag = 2;
              goto copy_continuation_from_heapB;
             copy_continuation_from_heapB_return_2:
              arg0K0 = stack_nargs_1616X;
              arg0K1 = list_args_1617X;
              arg0K2 = list_arg_count_1618X;
              goto L28781;}
            else {
              goto L28816;}}
          else {
            goto L28816;}}
        else {
          if ((70 == protocol_1620X)) {
            SvalS = (*((long *) ((ScontS) + 4)));
            offset_1626X = ((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3)));
            if ((0 == offset_1626X)) {
              cont_1627X = ScontS;
              pointer_1628X = (((char *) (*((long *) cont_1627X)))) + -2;
              size_1629X = ((((*((unsigned char *) pointer_1628X)))<<8)) + (*((unsigned char *) (pointer_1628X + 1)));
              if ((65535 == size_1629X)) {
                arg0K0 = ((((*((long *) (cont_1627X + 4))))>>2));
                goto L28933;}
              else {
                arg0K0 = size_1629X;
                goto L28933;}}
            else {
              ScontS = ((ScontS) + 4);
              *((long *) (ScontS)) = (long) ((((long) (code_pointer_1619X + offset_1626X))));
              merged_arg0K0 = stack_nargs_1616X;
              move_args_above_contB_return_tag = 6;
              goto move_args_above_contB;
             move_args_above_contB_return_6:
              arg0K0 = stack_nargs_1616X;
              arg0K1 = list_args_1617X;
              arg0K2 = list_arg_count_1618X;
              goto L58352;}}
          else {
            if ((63 < protocol_1620X)) {
              if ((65 == protocol_1620X)) {
                count_1630X = ((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3)));
                if (((stack_nargs_1616X + list_arg_count_1618X) < count_1630X)) {
                  merged_arg0K0 = list_args_1617X;
                  merged_arg0K1 = stack_nargs_1616X;
                  pop_args_GlistSAgc_return_tag = 8;
                  goto pop_args_GlistSAgc;
                 pop_args_GlistSAgc_return_8:
                  args_1631X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (1);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (args_1631X);
                  arg0K0 = 2;
                  goto L29353;}
                else {
                  arg_top_1632X = SstackS;
                  pop_continuationB_return_tag = 3;
                  goto pop_continuationB;
                 pop_continuationB_return_3:
                  arg2K0 = ((SstackS) + -4);
                  arg2K1 = (arg_top_1632X + (-4 + (((stack_nargs_1616X)<<2))));
                  goto L33130;}}
              else {
                if ((64 == protocol_1620X)) {
                  arg0K0 = (((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3))));
                  arg0K1 = 3;
                  arg0K2 = stack_nargs_1616X;
                  arg0K3 = list_args_1617X;
                  arg0K4 = list_arg_count_1618X;
                  goto L32982;}
                else {
                  ps_error("unknown protocol", 1, protocol_1620X);
                  arg0K0 = stack_nargs_1616X;
                  arg0K1 = list_args_1617X;
                  goto L29782;}}}
            else {
              arg0K0 = protocol_1620X;
              arg0K1 = 1;
              arg0K2 = stack_nargs_1616X;
              arg0K3 = list_args_1617X;
              arg0K4 = list_arg_count_1618X;
              goto L32982;}}}}}}}
 L33274: {
  if ((nargs_1056X == (*((unsigned char *) ((((char *) (-3 + code_1055X))) + 1))))) {
    arg0K0 = code_1055X;
    arg0K1 = 2;
    arg0K2 = 3;
    arg0K3 = template_1054X;
    goto L28169;}
  else {
    v_1633X = *((unsigned char *) ((((char *) (-3 + code_1055X))) + 1));
    if ((67 == v_1633X)) {
      if ((nargs_1056X == (*((unsigned char *) ((((char *) (-3 + code_1055X))) + (-3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_1055X))) + -4))))>>8)))))))) {
        index_1634X = -2 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_1055X))) + -4))))>>8));
        arg0K0 = code_1055X;
        arg0K1 = 2;
        arg0K2 = template_1054X;
        arg0K3 = (((((*((unsigned char *) ((((char *) (-3 + code_1055X))) + index_1634X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_1055X))) + (1 + index_1634X)))));
        goto L32090;}
      else {
        goto L33296;}}
    else {
      goto L33296;}}}
 L31965: {
  arg0K0 = (2 + (((max_1060X)<<1)));
  goto L31967;}
 L31967: {
  offset_1635X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + offset_1635X);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L32554: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L31863: {
  delta_1636X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1636X);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L32445: {
  delta_1637X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1637X);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L60316: {
  val_1638X = arg0K0;
  SvalS = val_1638X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L60328: {
  val_1639X = arg0K0;
  SvalS = val_1639X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L18515: {
  if ((3 == (3 & x_1075X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60328;}
    else {
      goto L18521;}}
  else {
    goto L18521;}}
 L49839: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49840: {
  if ((3 == (3 & n_1076X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
      goto L49853;}
    else {
      goto L49848;}}
  else {
    goto L49848;}}
 L49973: {
  n_1640X = arg0K0;
  if ((0 == (3 & n_1640X))) {
    goto L50006;}
  else {
    if ((3 == (3 & n_1640X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
        goto L50006;}
      else {
        goto L49989;}}
    else {
      goto L49989;}}}
 L42447: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42448: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1077X);
  arg0K0 = 1;
  goto L29353;}
 L42573: {
  v_1641X = (char *) s48_long_to_bignum(x_1082X);
  v_1642X = enter_bignum(v_1641X);
  arg0K0 = v_1642X;
  goto L42519;}
 L42519: {
  val_1643X = arg0K0;
  SvalS = val_1643X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42525: {
  if ((0 == (3 & y_1081X))) {
    goto L42531;}
  else {
    if ((3 == (3 & y_1081X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1081X))) + -4))))>>2))))) {
        goto L42531;}
      else {
        goto L42534;}}
    else {
      goto L42534;}}}
 L42534: {
  if ((3 == (3 & arg2_1080X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1080X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1081X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1081X))) + -4))))>>2))))) {
          Stemp0S = arg2_1080X;
          Stemp1S = y_1081X;s48_make_availableAgc(12);
          value_1644X = Stemp0S;
          Stemp0S = 1;
          x_1645X = *((double *) (((char *) (-3 + value_1644X))));
          value_1646X = Stemp1S;
          Stemp1S = 1;
          y_1647X = *((double *) (((char *) (-3 + value_1646X))));
          addr_1648X = s48_allocate_small(12);
          *((long *) addr_1648X) = (long) (2122);
          Kdouble_1649X = 3 + (((long) (addr_1648X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1649X)))) = (double) ((x_1645X + y_1647X));
          SvalS = Kdouble_1649X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L42548;}}
      else {
        goto L42548;}}
    else {
      goto L42548;}}
  else {
    goto L42548;}}
 L11582: {
  a_1650X = arg0K0;
  if ((b_1086X < 0)) {
    arg0K0 = (0 - b_1086X);
    goto L11586;}
  else {
    arg0K0 = b_1086X;
    goto L11586;}}
 L51746: {
  if ((0 == (3 & y_1084X))) {
    goto L51752;}
  else {
    if ((3 == (3 & y_1084X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1084X))) + -4))))>>2))))) {
        goto L51752;}
      else {
        goto L51755;}}
    else {
      goto L51755;}}}
 L51755: {
  if ((3 == (3 & arg2_1083X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1083X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1084X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1084X))) + -4))))>>2))))) {
          Stemp0S = arg2_1083X;
          Stemp1S = y_1084X;s48_make_availableAgc(12);
          value_1651X = Stemp0S;
          Stemp0S = 1;
          x_1652X = *((double *) (((char *) (-3 + value_1651X))));
          value_1653X = Stemp1S;
          Stemp1S = 1;
          y_1654X = *((double *) (((char *) (-3 + value_1653X))));
          addr_1655X = s48_allocate_small(12);
          *((long *) addr_1655X) = (long) (2122);
          Kdouble_1656X = 3 + (((long) (addr_1655X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1656X)))) = (double) ((x_1652X * y_1654X));
          SvalS = Kdouble_1656X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L51769;}}
      else {
        goto L51769;}}
    else {
      goto L51769;}}
  else {
    goto L51769;}}
 L42862: {
  v_1657X = (char *) s48_long_to_bignum(x_1089X);
  v_1658X = enter_bignum(v_1657X);
  arg0K0 = v_1658X;
  goto L42808;}
 L42808: {
  val_1659X = arg0K0;
  SvalS = val_1659X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42814: {
  if ((0 == (3 & y_1088X))) {
    goto L42820;}
  else {
    if ((3 == (3 & y_1088X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1088X))) + -4))))>>2))))) {
        goto L42820;}
      else {
        goto L42823;}}
    else {
      goto L42823;}}}
 L42823: {
  if ((3 == (3 & arg2_1087X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1087X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1088X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1088X))) + -4))))>>2))))) {
          Stemp0S = arg2_1087X;
          Stemp1S = y_1088X;s48_make_availableAgc(12);
          value_1660X = Stemp0S;
          Stemp0S = 1;
          x_1661X = *((double *) (((char *) (-3 + value_1660X))));
          value_1662X = Stemp1S;
          Stemp1S = 1;
          y_1663X = *((double *) (((char *) (-3 + value_1662X))));
          addr_1664X = s48_allocate_small(12);
          *((long *) addr_1664X) = (long) (2122);
          Kdouble_1665X = 3 + (((long) (addr_1664X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1665X)))) = (double) ((x_1661X - y_1663X));
          SvalS = Kdouble_1665X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31656;}
        else {
          goto L42837;}}
      else {
        goto L42837;}}
    else {
      goto L42837;}}
  else {
    goto L42837;}}
 L11840: {
  a_1666X = arg0K0;
  if ((b_1093X < 0)) {
    arg0K0 = (0 - b_1093X);
    goto L11844;}
  else {
    arg0K0 = b_1093X;
    goto L11844;}}
 L51999: {
  if ((0 == (3 & y_1091X))) {
    goto L52005;}
  else {
    if ((3 == (3 & y_1091X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1091X))) + -4))))>>2))))) {
        goto L52005;}
      else {
        goto L52036;}}
    else {
      goto L52036;}}}
 L52036: {
  if ((3 == (3 & arg2_1090X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1091X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1091X))) + -4))))>>2))))) {
          if ((0.0 == (*((double *) (((char *) (-3 + y_1091X))))))) {
            arg0K0 = 1;
            goto L52049;}
          else {
            Stemp0S = arg2_1090X;
            Stemp1S = y_1091X;s48_make_availableAgc(12);
            value_1667X = Stemp0S;
            Stemp0S = 1;
            x_1668X = *((double *) (((char *) (-3 + value_1667X))));
            value_1669X = Stemp1S;
            Stemp1S = 1;
            value_1670X = x_1668X / (*((double *) (((char *) (-3 + value_1669X)))));
            addr_1671X = s48_allocate_small(12);
            *((long *) addr_1671X) = (long) (2122);
            Kdouble_1672X = 3 + (((long) (addr_1671X + 4)));
            *((double *) (((char *) (-3 + Kdouble_1672X)))) = (double) (value_1670X);
            arg0K0 = Kdouble_1672X;
            goto L52049;}}
        else {
          goto L52056;}}
      else {
        goto L52056;}}
    else {
      goto L52056;}}
  else {
    goto L52056;}}
 L43093: {
  val_1673X = arg0K0;
  SvalS = val_1673X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43099: {
  if ((0 == (3 & y_1095X))) {
    goto L43105;}
  else {
    if ((3 == (3 & y_1095X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1095X))) + -4))))>>2))))) {
        goto L43105;}
      else {
        goto L43110;}}
    else {
      goto L43110;}}}
 L43110: {
  if ((3 == (3 & arg2_1094X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1094X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1095X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1095X))) + -4))))>>2))))) {
          b_1674X = (*((double *) (((char *) (-3 + arg2_1094X))))) == (*((double *) (((char *) (-3 + y_1095X)))));
          if (b_1674X) {
            arg0K0 = 5;
            goto L43125;}
          else {
            arg0K0 = 1;
            goto L43125;}}
        else {
          goto L43126;}}
      else {
        goto L43126;}}
    else {
      goto L43126;}}
  else {
    goto L43126;}}
 L43353: {
  val_1675X = arg0K0;
  SvalS = val_1675X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43359: {
  if ((0 == (3 & y_1097X))) {
    goto L43365;}
  else {
    if ((3 == (3 & y_1097X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1097X))) + -4))))>>2))))) {
        goto L43365;}
      else {
        goto L43370;}}
    else {
      goto L43370;}}}
 L43370: {
  if ((3 == (3 & arg2_1096X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1096X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1097X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1097X))) + -4))))>>2))))) {
          b_1676X = (*((double *) (((char *) (-3 + arg2_1096X))))) < (*((double *) (((char *) (-3 + y_1097X)))));
          if (b_1676X) {
            arg0K0 = 5;
            goto L43385;}
          else {
            arg0K0 = 1;
            goto L43385;}}
        else {
          goto L43386;}}
      else {
        goto L43386;}}
    else {
      goto L43386;}}
  else {
    goto L43386;}}
 L43676: {
  val_1677X = arg0K0;
  SvalS = val_1677X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43682: {
  if ((0 == (3 & y_1099X))) {
    goto L43688;}
  else {
    if ((3 == (3 & y_1099X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1099X))) + -4))))>>2))))) {
        goto L43688;}
      else {
        goto L43693;}}
    else {
      goto L43693;}}}
 L43693: {
  if ((3 == (3 & arg2_1098X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1098X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1099X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1099X))) + -4))))>>2))))) {
          b_1678X = (*((double *) (((char *) (-3 + y_1099X))))) < (*((double *) (((char *) (-3 + arg2_1098X)))));
          if (b_1678X) {
            arg0K0 = 5;
            goto L43708;}
          else {
            arg0K0 = 1;
            goto L43708;}}
        else {
          goto L43709;}}
      else {
        goto L43709;}}
    else {
      goto L43709;}}
  else {
    goto L43709;}}
 L43999: {
  val_1679X = arg0K0;
  SvalS = val_1679X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44005: {
  if ((0 == (3 & y_1101X))) {
    goto L44011;}
  else {
    if ((3 == (3 & y_1101X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1101X))) + -4))))>>2))))) {
        goto L44011;}
      else {
        goto L44016;}}
    else {
      goto L44016;}}}
 L44016: {
  if ((3 == (3 & arg2_1100X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1100X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1101X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1101X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + y_1101X))))) < (*((double *) (((char *) (-3 + arg2_1100X))))))) {
            arg0K0 = 1;
            goto L44031;}
          else {
            arg0K0 = 5;
            goto L44031;}}
        else {
          goto L44032;}}
      else {
        goto L44032;}}
    else {
      goto L44032;}}
  else {
    goto L44032;}}
 L44293: {
  val_1680X = arg0K0;
  SvalS = val_1680X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44299: {
  if ((0 == (3 & y_1103X))) {
    goto L44305;}
  else {
    if ((3 == (3 & y_1103X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1103X))) + -4))))>>2))))) {
        goto L44305;}
      else {
        goto L44310;}}
    else {
      goto L44310;}}}
 L44310: {
  if ((3 == (3 & arg2_1102X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1102X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1103X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1103X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + arg2_1102X))))) < (*((double *) (((char *) (-3 + y_1103X))))))) {
            arg0K0 = 1;
            goto L44325;}
          else {
            arg0K0 = 5;
            goto L44325;}}
        else {
          goto L44326;}}
      else {
        goto L44326;}}
    else {
      goto L44326;}}
  else {
    goto L44326;}}
 L12454: {
  a_1681X = arg0K0;
  if ((b_1108X < 0)) {
    arg0K0 = (0 - b_1108X);
    goto L12458;}
  else {
    arg0K0 = b_1108X;
    goto L12458;}}
 L44599: {
  if ((0 == (3 & y_1105X))) {
    goto L44605;}
  else {
    if ((3 == (3 & y_1105X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1105X))) + -4))))>>2))))) {
        goto L44605;}
      else {
        goto L44608;}}
    else {
      goto L44608;}}}
 L44608: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1104X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1105X);
  arg0K0 = 2;
  goto L29353;}
 L44813: {
  a_1682X = arg0K0;
  n_1683X = ((y_1110X)>>2);
  if ((n_1683X < 0)) {
    arg0K0 = (0 - n_1683X);
    goto L44815;}
  else {
    arg0K0 = n_1683X;
    goto L44815;}}
 L44775: {
  if ((0 == (3 & y_1110X))) {
    goto L44781;}
  else {
    if ((3 == (3 & y_1110X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1110X))) + -4))))>>2))))) {
        goto L44781;}
      else {
        goto L44784;}}
    else {
      goto L44784;}}}
 L44784: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1109X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1110X);
  arg0K0 = 2;
  goto L29353;}
 L44962: {
  SvalS = n_1113X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44963: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1113X);
  arg0K0 = 1;
  goto L29353;}
 L45017: {
  SvalS = n_1114X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45018: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1114X);
  arg0K0 = 1;
  goto L29353;}
 L45072: {
  SvalS = 4;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45075: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1115X);
  arg0K0 = 1;
  goto L29353;}
 L45132: {
  SvalS = n_1116X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45133: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1116X);
  arg0K0 = 1;
  goto L29353;}
 L45187: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45190: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1117X);
  arg0K0 = 1;
  goto L29353;}
 L53321: {
  x_1684X = SvalS;
  if ((0 == (3 & x_1684X))) {
    if ((0 < x_1684X)) {
      goto L53350;}
    else {
      goto L53344;}}
  else {
    v_1685X = s48_bignum_test((((char *) (-3 + x_1684X))));
    if ((-1 == v_1685X)) {
      goto L53344;}
    else {
      goto L53350;}}}
 L53324: {
push_exception_setupB(5, 1);
  x_1686X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1686X);
  arg0K0 = 1;
  goto L29353;}
 L56707: {
  x_1687X = SvalS;
  if ((0 == (3 & x_1687X))) {
    n_1688X = ((x_1687X)>>2);
    if ((n_1688X < 0)) {
      arg0K0 = (0 - n_1688X);
      goto L52331;}
    else {
      arg0K0 = n_1688X;
      goto L52331;}}
  else {
    if ((0 == (3 & x_1687X))) {
      arg0K0 = 1;
      arg0K1 = 3;
      goto L23723;}
    else {
      arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1687X))) + -4))))>>8))))>>2)));
      arg0K1 = 0;
      goto L23723;}}}
 L56710: {
push_exception_setupB(5, 1);
  x_1689X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1689X);
  arg0K0 = 1;
  goto L29353;}
 L45333: {
  val_1690X = integer_bitwise_not(x_1135X);
  SvalS = val_1690X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45336: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1135X);
  arg0K0 = 1;
  goto L29353;}
 L45424: {
  x_1691X = arg0K0;
  arg0K0 = x_1691X;
  arg0K1 = 0;
  goto L45430;}
 L45407: {
  val_1692X = integer_bit_count(x_1136X);
  SvalS = val_1692X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45410: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1136X);
  arg0K0 = 1;
  goto L29353;}
 L45509: {
  if ((0 == (3 & y_1139X))) {
    goto L45515;}
  else {
    if ((3 == (3 & y_1139X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1139X))) + -4))))>>2))))) {
        goto L45515;}
      else {
        goto L45518;}}
    else {
      goto L45518;}}}
 L45518: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1138X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1139X);
  arg0K0 = 2;
  goto L29353;}
 L45672: {
  if ((0 == (3 & y_1141X))) {
    goto L45678;}
  else {
    if ((3 == (3 & y_1141X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1141X))) + -4))))>>2))))) {
        goto L45678;}
      else {
        goto L45681;}}
    else {
      goto L45681;}}}
 L45681: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1140X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1141X);
  arg0K0 = 2;
  goto L29353;}
 L45835: {
  if ((0 == (3 & y_1143X))) {
    goto L45841;}
  else {
    if ((3 == (3 & y_1143X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1143X))) + -4))))>>2))))) {
        goto L45841;}
      else {
        goto L45844;}}
    else {
      goto L45844;}}}
 L45844: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1142X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1143X);
  arg0K0 = 2;
  goto L29353;}
 L42227: {
  val_1693X = arg0K0;
  SvalS = val_1693X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42243: {
  val_1694X = arg0K0;
  SvalS = val_1694X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42244: {
push_exception_setupB(6, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1144X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1145X);
  arg0K0 = 2;
  goto L29353;}
 L52381: {
  if ((0 == (3 & y_1145X))) {
    if ((0 == (3 & arg2_1144X))) {
      value_1695X = ((arg2_1144X)>>2);
      count_1696X = ((y_1145X)>>2);
      if ((count_1696X < 0)) {
        PS_SHIFT_RIGHT(value_1695X, (0 - count_1696X), x_1697X)
        x_1698X = x_1697X;s48_make_availableAgc(16);
        if ((536870911 < x_1698X)) {
          goto L52501;}
        else {
          if ((x_1698X < -536870912)) {
            goto L52501;}
          else {
            arg0K0 = (((x_1698X)<<2));
            goto L52496;}}}
      else {
        PS_SHIFT_LEFT(value_1695X, count_1696X, x_1699X)
        result_1700X = x_1699X;
        PS_SHIFT_RIGHT(result_1700X, count_1696X, x_1701X)
        if ((value_1695X == x_1701X)) {
          if ((value_1695X < 0)) {
            if ((result_1700X < 0)) {s48_make_availableAgc(16);
              if ((536870911 < result_1700X)) {
                goto L52523;}
              else {
                if ((result_1700X < -536870912)) {
                  goto L52523;}
                else {
                  arg0K0 = (((result_1700X)<<2));
                  goto L52518;}}}
            else {
              arg0K0 = arg2_1144X;
              arg0K1 = y_1145X;
              goto L52394;}}
          else {
            if ((result_1700X < 0)) {
              arg0K0 = arg2_1144X;
              arg0K1 = y_1145X;
              goto L52394;}
            else {s48_make_availableAgc(16);
              if ((536870911 < result_1700X)) {
                goto L52545;}
              else {
                if ((result_1700X < -536870912)) {
                  goto L52545;}
                else {
                  arg0K0 = (((result_1700X)<<2));
                  goto L52540;}}}}}
        else {
          arg0K0 = arg2_1144X;
          arg0K1 = y_1145X;
          goto L52394;}}}
    else {
      if ((3 == (3 & arg2_1144X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1144X))) + -4))))>>2))))) {
          y_1702X = ((y_1145X)>>2);
          merged_arg0K0 = arg2_1144X;
          merged_arg0K1 = y_1702X;
          shift_space_return_tag = 0;
          goto shift_space;
         shift_space_return_0:
          needed_1703X = shift_space0_return_value;
          Stemp0S = arg2_1144X;s48_make_availableAgc((((needed_1703X)<<2)));
          value_1704X = Stemp0S;
          Stemp0S = 1;
          if ((0 == (3 & value_1704X))) {
            v_1705X = (char *) s48_long_to_bignum((((value_1704X)>>2)));
            arg2K0 = v_1705X;
            goto L52576;}
          else {
            arg2K0 = (((char *) (-3 + value_1704X)));
            goto L52576;}}
        else {
          goto L52403;}}
      else {
        goto L52403;}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1144X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_1145X);
    arg0K0 = 2;
    goto L29353;}}
 L60587: {
  val_1706X = arg0K0;
  SvalS = val_1706X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49640: {
  val_1707X = arg0K0;
  SvalS = val_1707X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49611: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1149X);
  x_1708X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1708X);
  arg0K0 = 2;
  goto L29353;}
 L49548: {
  val_1709X = arg0K0;
  SvalS = val_1709X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49519: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1151X);
  x_1710X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1710X);
  arg0K0 = 2;
  goto L29353;}
 L53630: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((x_1154X)<<2)));
  arg0K0 = 1;
  goto L29353;}
 L53636: {
  SvalS = (9 + (((x_1154X)<<8)));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49446: {
  val_1711X = arg0K0;
  SvalS = val_1711X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L60620: {
  val_1712X = arg0K0;
  SvalS = val_1712X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L60634: {
  value_1713X = arg0K0;
  SvalS = value_1713X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L34419: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1161X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1162X)<<2)));
  arg0K0 = 2;
  goto L29353;}
 L34524: {
  SvalS = new_1167X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L34508: {
  i_1714X = arg0K0;
  if ((i_1714X < 0)) {
    goto L34524;}
  else {
    value_1715X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_1167X))) + (((i_1714X)<<2)))) = (long) (value_1715X);
    arg0K0 = (-1 + i_1714X);
    goto L34508;}}
 L34642: {
  i_1716X = arg0K0;
  if ((i_1716X < 0)) {
    arg0K0 = stack_nargs_1175X;
    arg0K1 = rest_list_1176X;
    goto L34784;}
  else {
    value_1717X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_1173X))) + (((i_1716X)<<2)))) = (long) (value_1717X);
    arg0K0 = (-1 + i_1716X);
    goto L34642;}}
 L34810: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1177X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1178X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1179X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L34927: {
  addr_1718X = (((char *) (-3 + arg2_1180X))) + (((offset_1183X)<<2));S48_WRITE_BARRIER(arg2_1180X, addr_1718X, value_1181X);
  *((long *) addr_1718X) = (long) (value_1181X);
  goto L34936;}
 L34936: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L34937: {
push_exception_setupB(5, 4);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1180X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1182X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1183X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1181X);
  arg0K0 = 4;
  goto L29353;}
 L35154: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1188X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (init_1186X);
  arg0K0 = 3;
  goto L29353;}
 L35171: {
  x_1719X = arg0K0;
  value_1720X = Stemp0S;
  Stemp0S = 1;
  if ((1 == x_1719X)) {push_exception_setupB(8, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1188X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (value_1720X);
    arg0K0 = 3;
    goto L29353;}
  else {
    arg0K0 = (-1 + len_1188X);
    goto L35197;}}
 L35444: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1191X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1193X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_1192X);
  arg0K0 = 3;
  goto L29353;}
 L35434: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg2_1191X))) + (-4 & index_1192X))));
  goto L35443;}
 L35443: {
  value_1721X = arg0K0;
  SvalS = value_1721X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L35399: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1191X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1193X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_1192X);
  arg0K0 = 3;
  goto L29353;}
 L35731: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1199X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1201X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1198X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1200X);
  arg0K0 = 4;
  goto L29353;}
 L35721: {
  addr_1722X = (((char *) (-3 + arg3_1199X))) + (-4 & arg2_1198X);S48_WRITE_BARRIER(arg3_1199X, addr_1722X, value_1200X);
  *((long *) addr_1722X) = (long) (value_1200X);
  goto L35730;}
 L35730: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L35684: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1199X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1201X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1198X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1200X);
  arg0K0 = 4;
  goto L29353;}
 L60677: {
  new_1723X = arg0K0;
  if ((1 == new_1723X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (72);
    arg0K0 = 1;
    goto L29353;}
  else {
    SvalS = new_1723X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L46117: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1207X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((init_1208X)<<2)));
  arg0K0 = 2;
  goto L29353;}
 L46132: {
  vector_1724X = arg0K0;
  if ((1 == vector_1724X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1207X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((init_1208X)<<2)));
    arg0K0 = 2;
    goto L29353;}
  else {
    arg0K0 = (-1 + len_1207X);
    goto L46154;}}
 L57953: {
push_exception_setupB(5, 1);
  x_1725X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1725X);
  arg0K0 = 1;
  goto L29353;}
 L53773: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1212X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1213X)<<2)));
  arg0K0 = 2;
  goto L29353;}
 L57379: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1212X);
  x_1726X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1726X);
  arg0K0 = 2;
  goto L29353;}
 L50958: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1217X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1218X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L50937: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1217X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1218X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L56027: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1215X);
  x_1727X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1727X);
  arg0K0 = 3;
  goto L29353;}
 L46302: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1221X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((init_1222X)<<8))));
  arg0K0 = 2;
  goto L29353;}
 L46317: {
  vector_1728X = arg0K0;
  if ((1 == vector_1728X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1221X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((9 + (((init_1222X)<<8))));
    arg0K0 = 2;
    goto L29353;}
  else {
    arg0K0 = (-1 + len_1221X);
    goto L46339;}}
 L53854: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1220X);
  x_1729X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1729X);
  arg0K0 = 2;
  goto L29353;}
 L58003: {
push_exception_setupB(5, 1);
  x_1730X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1730X);
  arg0K0 = 1;
  goto L29353;}
 L53919: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1227X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1228X)<<2)));
  arg0K0 = 2;
  goto L29353;}
 L53947: {
  bits_1731X = arg0K0;
  j_1732X = arg0K1;
  scalar_value_1733X = arg0K2;
  if ((j_1732X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + arg2_1227X))) + ((((index_1228X)<<2)) + j_1732X)))), bits_1731X, x_1734X)
    arg0K0 = (8 + bits_1731X);
    arg0K1 = (1 + j_1732X);
    arg0K2 = (x_1734X + scalar_value_1733X);
    goto L53947;}
  else {
    SvalS = (9 + (((scalar_value_1733X)<<8)));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L57477: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1227X);
  x_1735X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1735X);
  arg0K0 = 2;
  goto L29353;}
 L51113: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1232X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((Kchar_1233X)<<8))));
  arg0K0 = 3;
  goto L29353;}
 L51177: {
  bits_1736X = arg0K0;
  j_1737X = arg0K1;
  shifted_1738X = arg0K2;
  if ((j_1737X < 4)) {
    *((unsigned char *) ((((char *) (-3 + arg3_1231X))) + ((((index_1232X)<<2)) + j_1737X))) = (unsigned char) ((255 & shifted_1738X));
    arg0K0 = (8 + bits_1736X);
    arg0K1 = (1 + j_1737X);
    arg0K2 = ((long)(((unsigned long)shifted_1738X)>>8));
    goto L51177;}
  else {
    SvalS = 13;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L51092: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1232X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((Kchar_1233X)<<8))));
  arg0K0 = 3;
  goto L29353;}
 L56157: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1230X);
  x_1739X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1739X);
  arg0K0 = 3;
  goto L29353;}
 L36066: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1238X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((from_index_1239X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1236X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((to_index_1240X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1241X)<<2)));
  arg0K0 = 5;
  goto L29353;}
 L41213: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1238X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1237X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1236X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1235X);
  x_1740X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1740X);
  arg0K0 = 5;
  goto L29353;}
 L27003: {
  bucket_1741X = arg0K0;
  arg0K0 = bucket_1741X;
  goto L27009;}
 L42389: {
push_exception_setupB(5, 1);
  x_1742X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1742X);
  arg0K0 = 1;
  goto L29353;}
 L55721: {
  val_1743X = arg0K0;
  SvalS = val_1743X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L55702: {
push_exception_setupB(5, 1);
  x_1744X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1744X);
  arg0K0 = 1;
  goto L29353;}
 L50715: {
  if ((1 == (SvalS))) {
    addr_1745X = (((char *) (-3 + arg2_1253X))) + 4;S48_WRITE_BARRIER(arg2_1253X, addr_1745X, 273);
    *((long *) addr_1745X) = (long) (273);
    goto L50721;}
  else {
    if ((17 == (255 & (*((long *) ((((char *) (-3 + arg2_1253X))) + 4)))))) {
      addr_1746X = (((char *) (-3 + arg2_1253X))) + 4;S48_WRITE_BARRIER(arg2_1253X, addr_1746X, 529);
      *((long *) addr_1746X) = (long) (529);
      goto L50721;}
    else {
      goto L50721;}}}
 L50722: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1253X);
  x_1747X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1747X);
  arg0K0 = 2;
  goto L29353;}
 L60739: {
  val_1748X = arg0K0;
  SvalS = val_1748X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L54011: {
  SvalS = x_1256X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L46741: {
  if ((0 == (3 & arg4_1259X))) {
    if (((((arg4_1259X)>>2)) < 0)) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29353;}
    else {
      arg0K0 = (((arg4_1259X)>>2));
      goto L46527;}}
  else {
    if ((3 == (3 & arg4_1259X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1259X))) + -4))))>>2))))) {
        filename_1749X = ((char *)(((char *) (-3 + arg4_1259X))));
        if ((1 == mode_1260X)) {
          goto L46589;}
        else {
          if ((3 == mode_1260X)) {
            goto L46589;}
          else {
            v_1750X = ps_open_fd(filename_1749X, 0, &v_1751X);
            arg0K0 = v_1750X;
            arg0K1 = v_1751X;
            goto L46598;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
        arg0K0 = 2;
        goto L29353;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29353;}}}
 L60758: {
push_exception_setupB(5, 1);
  x_1752X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1752X);
  arg0K0 = 1;
  goto L29353;}
 L54211: {
  if ((1 == (SvalS))) {
    arg3K0 = 0;
    goto L54221;}
  else {
    arg3K0 = 1;
    goto L54221;}}
 L54222: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1270X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1269X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1268X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1267X);
  x_1753X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1753X);
  arg0K0 = 5;
  goto L29353;}
 L47351: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1274X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1273X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1275X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1276X)<<2)));
  arg0K0 = 4;
  goto L29353;}
 L47350: {
  val_1754X = arg0K0;
  SvalS = val_1754X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L54425: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1274X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1273X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1272X);
  x_1755X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1755X);
  arg0K0 = 4;
  goto L29353;}
 L57203: {
  val_1756X = arg0K0;
  SvalS = val_1756X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L50306: {
  val_1757X = arg0K0;
  SvalS = val_1757X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L60793: {
push_exception_setupB(5, 1);
  x_1758X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1758X);
  arg0K0 = 1;
  goto L29353;}
 L54573: {
  val_1759X = arg0K0;
  SvalS = val_1759X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L14929: {
  x_1760X = Spending_channels_headS;
  if ((1 == x_1760X)) {
    Spending_interruptsS = (-9 & (Spending_interruptsS));
    goto L14941;}
  else {
    goto L14941;}}
 L14947: {
  ch_1761X = arg0K0;
  prev_1762X = arg0K1;
  if ((1 == ch_1761X)) {
    addr_1763X = (((char *) (-3 + channel_1294X))) + 20;S48_WRITE_BARRIER(channel_1294X, addr_1763X, 1);
    *((long *) addr_1763X) = (long) (1);
    n_1764X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1294X))) + 8))))>>2)));
    arg0K0 = (((n_1764X)<<2));
    goto L54573;}
  else {
    if ((ch_1761X == channel_1294X)) {
      y_1765X = Spending_channels_tailS;
      if ((ch_1761X == y_1765X)) {
        Spending_channels_tailS = prev_1762X;
        goto L14971;}
      else {
        goto L14971;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + ch_1761X))) + 16)));
      arg0K1 = ch_1761X;
      goto L14947;}}}
 L54556: {
push_exception_setupB(5, 1);
  x_1766X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1766X);
  arg0K0 = 1;
  goto L29353;}
 L21577: {
  i_1767X = arg0K0;
  res_1768X = arg0K1;
  if ((-1 == i_1767X)) {
    SvalS = res_1768X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    channel_1769X = *((Svm_channelsS) + i_1767X);
    if ((3 == (3 & channel_1769X))) {
      if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_1769X))) + -4))))>>2))))) {
        addr_1770X = s48_allocate_small(12);
        *((long *) addr_1770X) = (long) (2050);
        x_1771X = 3 + (((long) (addr_1770X + 4)));
        *((long *) (((char *) (-3 + x_1771X)))) = (long) (channel_1769X);
        *((long *) ((((char *) (-3 + x_1771X))) + 4)) = (long) (res_1768X);
        arg0K0 = x_1771X;
        goto L21591;}
      else {
        arg0K0 = res_1768X;
        goto L21591;}}
    else {
      arg0K0 = res_1768X;
      goto L21591;}}}
 L47572: {
  old_1772X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 == old_1772X)) {
    goto L47588;}
  else {
    addr_1773X = ((char *) (-3 + old_1772X));S48_WRITE_BARRIER(old_1772X, addr_1773X, 1);
    *((long *) addr_1773X) = (long) (1);
    goto L47588;}}
 L47603: {
  if ((proposal_1301X == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
    SvalS = 13;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (proposal_1301X);
    arg0K0 = 1;
    goto L29353;}}
 L13255: {
  i_1774X = arg0K0;
  stob_1775X = *((long *) ((((char *) (-3 + log_1303X))) + (((i_1774X)<<2))));
  if ((1 == stob_1775X)) {
    log_1776X = *((long *) ((((char *) (-3 + proposal_1302X))) + 8));
    arg0K0 = 0;
    goto L13493;}
  else {
    value_1777X = *((long *) ((((char *) (-3 + log_1303X))) + (8 + (((i_1774X)<<2)))));
    verify_1778X = *((long *) ((((char *) (-3 + log_1303X))) + (12 + (((i_1774X)<<2)))));
    if ((29 == verify_1778X)) {
      if ((3 == (3 & stob_1775X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1775X))) + -4)))))) {
          goto L13307;}
        else {
          goto L47851;}}
      else {
        goto L47851;}}
    else {
      if ((verify_1778X == (*((long *) ((((char *) (-3 + stob_1775X))) + (-4 & (*((long *) ((((char *) (-3 + log_1303X))) + (4 + (((i_1774X)<<2)))))))))))) {
        if ((verify_1778X == value_1777X)) {
          goto L13307;}
        else {
          if ((3 == (3 & stob_1775X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1775X))) + -4)))))) {
              goto L13307;}
            else {
              goto L47851;}}
          else {
            goto L47851;}}}
      else {
        goto L47851;}}}}
 L36321: {
  value_1779X = arg0K0;
  SvalS = value_1779X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L36322: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1304X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1305X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1306X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L36415: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1312X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((from_index_1313X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1310X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((to_index_1314X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1315X)<<2)));
  arg0K0 = 5;
  goto L29353;}
 L36475: {
  memmove((void *)((((char *) (-3 + arg3_1310X))) + to_index_1314X), (void *)((((char *) (-3 + arg5_1312X))) + from_index_1313X),count_1315X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L36572: {
  left_1780X = arg0K0;
  copies_1781X = arg0K1;
  if ((1 == copies_1781X)) {
    if ((left_1780X < count_1315X)) {
      goto L36415;}
    else {
      from_index_1782X = ((from_index_1313X)<<2);
      to_index_1783X = ((to_index_1314X)<<2);
      count_1784X = ((count_1315X)<<2);
      Stemp0S = arg5_1312X;
      Stemp1S = arg3_1310X;
      addr_1785X = s48_allocate_tracedAgc(28);
      if ((addr_1785X == NULL)) {
        arg0K0 = 1;
        goto L12970;}
      else {
        *((long *) addr_1785X) = (long) (6154);
        arg0K0 = (3 + (((long) (addr_1785X + 4))));
        goto L12970;}}}
  else {
    arg0K0 = (left_1780X - ((((*((long *) ((((char *) (-3 + copies_1781X))) + 16))))>>2)));
    arg0K1 = (*((long *) ((((char *) (-3 + copies_1781X))) + 20)));
    goto L36572;}}
 L41459: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1312X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1311X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1310X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1309X);
  x_1786X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1786X);
  arg0K0 = 5;
  goto L29353;}
 L36841: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1317X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1318X)<<2)));
  arg0K0 = 2;
  goto L29353;}
 L36840: {
  value_1787X = arg0K0;
  SvalS = value_1787X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L19720: {
  i_1788X = arg0K0;
  next_stob_1789X = *((long *) ((((char *) (-3 + log_1322X))) + (((i_1788X)<<2))));
  if ((1 == next_stob_1789X)) {
    v_1790X = add_log_entryAgc(2, i_1788X, arg2_1317X, index_1321X, ((((*((unsigned char *) ((((char *) (-3 + arg2_1317X))) + (((index_1321X)>>2))))))<<2)), 1);
    arg0K0 = v_1790X;
    goto L36840;}
  else {
    if ((arg2_1317X == next_stob_1789X)) {
      if ((index_1321X == (*((long *) ((((char *) (-3 + log_1322X))) + (4 + (((i_1788X)<<2)))))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + log_1322X))) + (8 + (((i_1788X)<<2))))));
        goto L36840;}
      else {
        goto L19742;}}
    else {
      goto L19742;}}}
 L41655: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1317X);
  x_1791X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1791X);
  arg0K0 = 2;
  goto L29353;}
 L36967: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1325X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1326X);
  arg0K0 = 3;
  goto L29353;}
 L36966: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L19896: {
  i_1792X = arg0K0;
  next_stob_1793X = *((long *) ((((char *) (-3 + log_1330X))) + (((i_1792X)<<2))));
  if ((1 == next_stob_1793X)) {add_log_entryAgc(2, i_1792X, arg3_1324X, index_1329X, byte_1326X, 0);
    goto L36966;}
  else {
    if ((arg3_1324X == next_stob_1793X)) {
      if ((index_1329X == (*((long *) ((((char *) (-3 + log_1330X))) + (4 + (((i_1792X)<<2)))))))) {
        addr_1794X = (((char *) (-3 + log_1330X))) + (8 + (((i_1792X)<<2)));S48_WRITE_BARRIER(log_1330X, addr_1794X, byte_1326X);
        *((long *) addr_1794X) = (long) (byte_1326X);
        goto L36966;}
      else {
        goto L19916;}}
    else {
      goto L19916;}}}
 L36932: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1325X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1326X);
  arg0K0 = 3;
  goto L29353;}
 L41760: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1323X);
  x_1795X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1795X);
  arg0K0 = 3;
  goto L29353;}
 L51351: {
  reason_1796X = arg0K0;
  status_1797X = arg0K1;push_exception_setupB(reason_1796X, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1334X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1333X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1332X);
  merged_arg0K0 = status_1797X;
  merged_arg0K1 = 0;
  get_error_string_return_tag = 3;
  goto get_error_string;
 get_error_string_return_3:
  x_1798X = get_error_string0_return_value;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1798X);
  arg0K0 = 4;
  goto L29353;}
 L56358: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1334X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1333X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1332X);
  x_1799X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1799X);
  arg0K0 = 4;
  goto L29353;}
 L57071: {
push_exception_setupB(5, 1);
  x_1800X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1800X);
  arg0K0 = 1;
  goto L29353;}
 L51626: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1346X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1347X);
  arg0K0 = 2;
  goto L29353;}
 L54692: {
  firstP_1801X = arg3K0;
  vector_1802X = s48_find_all(type_1360X);
  if ((1 == vector_1802X)) {
    if (firstP_1801X) {s48_collect();
      arg3K0 = 0;
      goto L54692;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((type_1360X)<<2)));
      arg0K0 = 1;
      goto L29353;}}
  else {
    SvalS = vector_1802X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L60901: {
  firstP_1803X = arg3K0;
  type_1804X = arg0K1;
  vector_1805X = s48_find_all_records(type_1804X);
  if ((1 == vector_1805X)) {
    if (firstP_1803X) {
      Stemp0S = type_1804X;s48_collect();
      value_1806X = Stemp0S;
      Stemp0S = 1;
      arg3K0 = 0;
      arg0K1 = value_1806X;
      goto L60901;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (type_1804X);
      arg0K0 = 1;
      goto L29353;}}
  else {
    SvalS = vector_1805X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L33392: {
push_exception_setupB(5, 1);
  x_1807X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1807X);
  arg0K0 = 1;
  goto L29353;}
 L31738: {
  Slast_code_calledS = code_1367X;
  Scode_pointerS = ((((char *) (-3 + code_1367X))) + (pc_1370X + (((size_1369X)>>2))));
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L29614: {
  ps_write_string("returning to nc ", (stderr));
  ps_write_integer((*((long *) (SstackS))), (stderr));
  arg0K0 = 0;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28781;}
 L32297: {
push_exception_setupB(5, 1);
  x_1808X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1808X);
  arg0K0 = 1;
  goto L29353;}
 L60949: {
  SvalS = (((old_1378X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L58168: {
  x_1809X = s48_schedule_alarm_interrupt((((p_1390X)>>2)));
  SvalS = (((x_1809X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L55906: {
  if ((1 == (SvalS))) {
    arg3K0 = 0;
    goto L55910;}
  else {
    arg3K0 = 1;
    goto L55910;}}
 L55911: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1392X);
  x_1810X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1810X);
  arg0K0 = 2;
  goto L29353;}
 L37166: {
  rest_list_1811X = arg0K0;
  if ((25 == rest_list_1811X)) {
    name_1812X = *((long *) ((SstackS) + (-8 + (((nargs_1395X)<<2)))));
    proc_1813X = *((long *) ((SstackS) + (-4 + (((nargs_1395X)<<2)))));
    args_1814X = SstackS;
    if ((3 == (3 & name_1812X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + name_1812X))) + -4))))>>2))))) {
        if ((3 == (3 & proc_1813X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + proc_1813X))) + -4))))>>2))))) {
            if ((4 == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proc_1813X))) + -4))))>>8)))) {
              SstackS = (ScontS);
              result_1815X = s48_external_call(proc_1813X, name_1812X, (-2 + nargs_1395X), args_1814X);
              if ((Sexternal_exceptionPS)) {
                Sexternal_exceptionPS = 0;
                arg0K0 = (Sexternal_exception_nargsS);
                goto L29353;}
              else {
                SvalS = result_1815X;
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31656;}}
            else {
              goto L37422;}}
          else {
            goto L37422;}}
        else {
          goto L37422;}}
      else {
        goto L37422;}}
    else {
      goto L37422;}}
  else {
    x_1816X = *((long *) (((char *) (-3 + rest_list_1811X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1816X);
    arg0K0 = (*((long *) ((((char *) (-3 + rest_list_1811X))) + 4)));
    goto L37166;}}
 L54787: {
  if ((1 == (SvalS))) {
    v_1817X = Hlookup2943((Sexported_bindingsS), arg2_1399X, 0);
    arg0K0 = v_1817X;
    goto L54828;}
  else {
    v_1818X = Hlookup2924((Simported_bindingsS), arg2_1399X, 0);
    arg0K0 = v_1818X;
    goto L54828;}}
 L54792: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1399X);
  x_1819X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1819X);
  arg0K0 = 2;
  goto L29353;}
 L40626: {
  if ((1 == (SvalS))) {
    arg0K0 = (Sexported_bindingsS);
    goto L40661;}
  else {
    arg0K0 = (Simported_bindingsS);
    goto L40661;}}
 L40631: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1401X);
  x_1820X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1820X);
  arg0K0 = 2;
  goto L29353;}
 L61009: {
  firstP_1821X = arg3K0;
  vector_1822X = s48_gather_objects(shared_binding_undefinedP, for_each_imported_binding);
  if ((1 == vector_1822X)) {
    if (firstP_1821X) {s48_collect();
      arg3K0 = 0;
      goto L61009;}
    else {push_exception_setupB(8, 1);
      arg0K0 = 0;
      goto L29353;}}
  else {
    SvalS = vector_1822X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L57005: {
  option_1823X = arg0K0;
  seconds_1824X = arg0K1;
  mseconds_1825X = arg0K2;
  if ((536869 < seconds_1824X)) {push_exception_setupB(6, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((option_1823X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((seconds_1824X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mseconds_1825X)<<2)));
    arg0K0 = 3;
    goto L29353;}
  else {
    SvalS = (((((1000 * seconds_1824X) + mseconds_1825X))<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L61066: {
  s48_Scallback_return_stack_blockS = arg2_1421X;
  arg0K0 = x_1422X;
  goto L63891;}
 L49226: {
  val_1826X = arg0K0;
  SvalS = val_1826X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49191: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1423X);
  x_1827X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1827X);
  arg0K0 = 2;
  goto L29353;}
 L48427: {
  len_1828X = ((n_1428X)<<2);
  addr_1829X = s48_allocate_small((4 + len_1828X));
  *((long *) addr_1829X) = (long) ((66 + (((len_1828X)<<8))));
  obj_1830X = 3 + (((long) (addr_1829X + 4)));
  arg0K0 = arg2_1427X;
  arg0K1 = (-1 + n_1428X);
  goto L48404;}
 L48379: {
  if ((25 == arg2_1427X)) {
    goto L48427;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1427X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((n_1428X)<<2)));
    arg0K0 = 2;
    goto L29353;}}
 L50369: {
  list_1831X = arg0K0;
  slow_1832X = arg0K1;
  move_slowP_1833X = arg3K2;
  if ((25 == list_1831X)) {
    SvalS = 1;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    if ((3 == (3 & list_1831X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + list_1831X))) + -4))))>>2))))) {
        head_1834X = *((long *) (((char *) (-3 + list_1831X))));
        if ((3 == (3 & head_1834X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + head_1834X))) + -4))))>>2))))) {
            if (((*((long *) (((char *) (-3 + head_1834X))))) == arg2_1430X)) {
              SvalS = head_1834X;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31656;}
            else {
              list_1835X = *((long *) ((((char *) (-3 + list_1831X))) + 4));
              if ((list_1835X == slow_1832X)) {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg2_1430X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (list_1431X);
                arg0K0 = 2;
                goto L29353;}
              else {
                if (move_slowP_1833X) {
                  arg0K0 = list_1835X;
                  arg0K1 = (*((long *) ((((char *) (-3 + slow_1832X))) + 4)));
                  arg3K2 = 0;
                  goto L50369;}
                else {
                  arg0K0 = list_1835X;
                  arg0K1 = slow_1832X;
                  arg3K2 = 1;
                  goto L50369;}}}}
          else {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1430X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (list_1431X);
            arg0K0 = 2;
            goto L29353;}}
        else {push_exception_setupB(5, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (arg2_1430X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (list_1431X);
          arg0K0 = 2;
          goto L29353;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1430X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (list_1431X);
        arg0K0 = 2;
        goto L29353;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1430X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (list_1431X);
      arg0K0 = 2;
      goto L29353;}}}
 L37498: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1433X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1432X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1434X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L37488: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg3_1433X))) + (((index_1434X)<<2)))));
  goto L37497;}
 L37497: {
  value_1836X = arg0K0;
  SvalS = value_1836X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L37518: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1433X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1432X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1434X)<<2)));
  arg0K0 = 3;
  goto L29353;}
 L37756: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1440X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1442X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1443X);
  arg0K0 = 4;
  goto L29353;}
 L37746: {
  addr_1837X = (((char *) (-3 + arg4_1441X))) + (((index_1442X)<<2));S48_WRITE_BARRIER(arg4_1441X, addr_1837X, value_1443X);
  *((long *) addr_1837X) = (long) (value_1443X);
  goto L37755;}
 L37755: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L37778: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1440X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1442X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1443X);
  arg0K0 = 4;
  goto L29353;}
 L29972: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1451X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((value_1452X)<<8))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1448X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1453X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1454X)<<2)));
  arg0K0 = 5;
  goto L29353;}
 L30024: {
  x_1838X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1838X);
  if (okP_1456X) {
    arg0K0 = (((count_1458X)<<2));
    goto L30034;}
  else {
    arg0K0 = 1;
    goto L30034;}}
 L30702: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1450X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1449X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1448X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1447X);
  x_1839X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1839X);
  arg0K0 = 5;
  goto L29353;}
 L48582: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1463X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((value_1464X)<<8))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1460X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1465X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1466X)<<2)));
  arg0K0 = 5;
  goto L29353;}
 L55190: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1462X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1461X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1460X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1459X);
  x_1840X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1840X);
  arg0K0 = 5;
  goto L29353;}
 L30257: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1474X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1472X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1475X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1476X)<<2)));
  arg0K0 = 4;
  goto L29353;}
 L30323: {
  x_1841X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1841X);
  if (okP_1478X) {
    arg0K0 = (((count_1481X)<<2));
    goto L30333;}
  else {
    arg0K0 = 1;
    goto L30333;}}
 L30898: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1473X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1472X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1471X);
  x_1842X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1842X);
  arg0K0 = 4;
  goto L29353;}
 L48801: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1485X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1483X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1486X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1487X)<<2)));
  arg0K0 = 4;
  goto L29353;}
 L55386: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1484X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1483X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1482X);
  x_1843X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1843X);
  arg0K0 = 4;
  goto L29353;}
 L38035: {
  port_1844X = arg0K0;
  if ((3 == (3 & port_1844X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1844X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1844X))) + 12))))>>2))))) {
        goto L38092;}
      else {
        b_1845X = *((long *) ((((char *) (-3 + port_1844X))) + 24));
        if ((1 == b_1845X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1844X);
          arg0K0 = 1;
          goto L29353;}
        else {
          p_1846X = *((long *) ((((char *) (-3 + port_1844X))) + 28));
          p_1847X = *((long *) ((((char *) (-3 + port_1844X))) + 32));
          i_1848X = ((p_1846X)>>2);
          if ((i_1848X == (((p_1847X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1844X);
            arg0K0 = 1;
            goto L29353;}
          else {
            val_1849X = 4 + (((i_1848X)<<2));
            addr_1850X = (((char *) (-3 + port_1844X))) + 28;S48_WRITE_BARRIER(port_1844X, addr_1850X, val_1849X);
            *((long *) addr_1850X) = (long) (val_1849X);
            SvalS = ((((*((unsigned char *) ((((char *) (-3 + b_1845X))) + i_1848X))))<<2));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg2K0 = (Scode_pointerS);
            goto L31656;}}}}
    else {
      goto L38092;}}
  else {
    goto L38092;}}
 L38237: {
  port_1851X = arg0K0;
  if ((3 == (3 & port_1851X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1851X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1851X))) + 12))))>>2))))) {
        goto L38294;}
      else {
        b_1852X = *((long *) ((((char *) (-3 + port_1851X))) + 24));
        if ((1 == b_1852X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1851X);
          arg0K0 = 1;
          goto L29353;}
        else {
          p_1853X = *((long *) ((((char *) (-3 + port_1851X))) + 28));
          p_1854X = *((long *) ((((char *) (-3 + port_1851X))) + 32));
          i_1855X = ((p_1853X)>>2);
          if ((i_1855X == (((p_1854X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1851X);
            arg0K0 = 1;
            goto L29353;}
          else {
            SvalS = ((((*((unsigned char *) ((((char *) (-3 + b_1852X))) + i_1855X))))<<2));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg2K0 = (Scode_pointerS);
            goto L31656;}}}}
    else {
      goto L38294;}}
  else {
    goto L38294;}}
 L38432: {
  byte_1856X = arg0K0;
  port_1857X = arg0K1;
  if ((0 == (3 & byte_1856X))) {
    if ((3 == (3 & port_1857X))) {
      if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1857X))) + -4))))>>2))))) {
        if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_1857X))) + 12))))>>2))))) {
          goto L38509;}
        else {
          if ((1 == (*((long *) ((((char *) (-3 + port_1857X))) + 32))))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (byte_1856X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1857X);
            arg0K0 = 2;
            goto L29353;}
          else {
            p_1858X = *((long *) ((((char *) (-3 + port_1857X))) + 28));
            b_1859X = *((long *) ((((char *) (-3 + port_1857X))) + 24));
            i_1860X = ((p_1858X)>>2);
            if ((i_1860X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + b_1859X))) + -4))))>>8)))) {push_exception_setupB(13, 2);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (byte_1856X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (port_1857X);
              arg0K0 = 2;
              goto L29353;}
            else {
              val_1861X = 4 + (((i_1860X)<<2));
              addr_1862X = (((char *) (-3 + port_1857X))) + 28;S48_WRITE_BARRIER(port_1857X, addr_1862X, val_1861X);
              *((long *) addr_1862X) = (long) (val_1861X);
              *((unsigned char *) ((((char *) (-3 + b_1859X))) + i_1860X)) = (unsigned char) ((((byte_1856X)>>2)));
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 2);
              arg2K0 = (Scode_pointerS);
              goto L31656;}}}}
      else {
        goto L38509;}}
    else {
      goto L38509;}}
  else {
    goto L38509;}}
 L38701: {
  port_1863X = arg0K0;
  if ((3 == (3 & port_1863X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1863X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1863X))) + 12))))>>2))))) {
        goto L38874;}
      else {
        b_1864X = *((long *) ((((char *) (-3 + port_1863X))) + 24));
        if ((1 == b_1864X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1863X);
          arg0K0 = 1;
          goto L29353;}
        else {
          arg0K0 = ((((*((long *) ((((char *) (-3 + port_1863X))) + 28))))>>2));
          goto L38730;}}}
    else {
      goto L38874;}}
  else {
    goto L38874;}}
 L39292: {
  port_1865X = arg0K0;
  if ((3 == (3 & port_1865X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1865X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1865X))) + 12))))>>2))))) {
        goto L39465;}
      else {
        b_1866X = *((long *) ((((char *) (-3 + port_1865X))) + 24));
        if ((1 == b_1866X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1865X);
          arg0K0 = 1;
          goto L29353;}
        else {
          arg0K0 = ((((*((long *) ((((char *) (-3 + port_1865X))) + 28))))>>2));
          goto L39321;}}}
    else {
      goto L39465;}}
  else {
    goto L39465;}}
 L39803: {
  Kchar_1867X = arg0K0;
  port_1868X = arg0K1;
  if ((9 == (255 & Kchar_1867X))) {
    if ((3 == (3 & port_1868X))) {
      if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1868X))) + -4))))>>2))))) {
        if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_1868X))) + 12))))>>2))))) {
          goto L40022;}
        else {
          if ((1 == (*((long *) ((((char *) (-3 + port_1868X))) + 32))))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (Kchar_1867X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1868X);
            arg0K0 = 2;
            goto L29353;}
          else {
            codec_1869X = *((long *) ((((char *) (-3 + port_1868X))) + 4));
            if ((0 == (3 & codec_1869X))) {
              b_1870X = *((long *) ((((char *) (-3 + port_1868X))) + 24));
              i_1871X = (((*((long *) ((((char *) (-3 + port_1868X))) + 28))))>>2);
              l_1872X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + b_1870X))) + -4))))>>8);
              if ((i_1871X == l_1872X)) {push_exception_setupB(13, 2);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (Kchar_1867X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (port_1868X);
                arg0K0 = 2;
                goto L29353;}
              else {
                x_1873X = *((long *) ((((char *) (-3 + port_1868X))) + 8));
                if ((1 == x_1873X)) {
                  goto L39968;}
                else {
                  if ((10 == (((Kchar_1867X)>>8)))) {
                    codec_okP_1874X = encode_scalar_value((((codec_1869X)>>2)), 13, ((((char *) (-3 + b_1870X))) + i_1871X), (l_1872X - i_1871X), &encoding_okP_1875X, &out_of_spaceP_1876X, &count_1877X);
                    if (codec_okP_1874X) {
                      if (encoding_okP_1875X) {
                        if (out_of_spaceP_1876X) {push_exception_setupB(13, 2);
                          SstackS = ((SstackS) + -4);
                          *((long *) (SstackS)) = (long) (Kchar_1867X);
                          SstackS = ((SstackS) + -4);
                          *((long *) (SstackS)) = (long) (port_1868X);
                          arg0K0 = 2;
                          goto L29353;}
                        else {
                          i_1878X = i_1871X + count_1877X;
                          if ((i_1878X == l_1872X)) {push_exception_setupB(13, 2);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) (Kchar_1867X);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) (port_1868X);
                            arg0K0 = 2;
                            goto L29353;}
                          else {encode_scalar_value((((codec_1869X)>>2)), 10, ((((char *) (-3 + b_1870X))) + i_1878X), (l_1872X - i_1878X), &encoding_okP_1879X, &out_of_spaceP_1880X, &count_1881X);
                            if (encoding_okP_1879X) {
                              if (out_of_spaceP_1880X) {push_exception_setupB(13, 2);
                                SstackS = ((SstackS) + -4);
                                *((long *) (SstackS)) = (long) (Kchar_1867X);
                                SstackS = ((SstackS) + -4);
                                *((long *) (SstackS)) = (long) (port_1868X);
                                arg0K0 = 2;
                                goto L29353;}
                              else {
                                val_1882X = (((i_1878X + count_1881X))<<2);
                                addr_1883X = (((char *) (-3 + port_1868X))) + 28;S48_WRITE_BARRIER(port_1868X, addr_1883X, val_1882X);
                                *((long *) addr_1883X) = (long) (val_1882X);
                                SvalS = 13;
                                Scode_pointerS = ((Scode_pointerS) + 2);
                                arg2K0 = (Scode_pointerS);
                                goto L31656;}}
                            else {push_exception_setupB(13, 2);
                              SstackS = ((SstackS) + -4);
                              *((long *) (SstackS)) = (long) (Kchar_1867X);
                              SstackS = ((SstackS) + -4);
                              *((long *) (SstackS)) = (long) (port_1868X);
                              arg0K0 = 2;
                              goto L29353;}}}}
                      else {push_exception_setupB(13, 2);
                        SstackS = ((SstackS) + -4);
                        *((long *) (SstackS)) = (long) (Kchar_1867X);
                        SstackS = ((SstackS) + -4);
                        *((long *) (SstackS)) = (long) (port_1868X);
                        arg0K0 = 2;
                        goto L29353;}}
                    else {push_exception_setupB(5, 2);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) (Kchar_1867X);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) (port_1868X);
                      arg0K0 = 2;
                      goto L29353;}}
                  else {
                    goto L39968;}}}}
            else {push_exception_setupB(13, 2);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (Kchar_1867X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (port_1868X);
              arg0K0 = 2;
              goto L29353;}}}}
      else {
        goto L40022;}}
    else {
      goto L40022;}}
  else {
    goto L40022;}}
 L50622: {
  stuff_1884X = arg0K0;
  if ((3 == (3 & stuff_1884X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + stuff_1884X))) + -4))))>>2))))) {
      thing_1885X = *((long *) (((char *) (-3 + stuff_1884X))));
      if ((0 == (3 & thing_1885X))) {
        ps_write_integer((((thing_1885X)>>2)), out_1510X);
        goto L50628;}
      else {
        if ((9 == (255 & thing_1885X))) {
          ps_write_string("#\\", out_1510X);
          { long ignoreXX;
          PS_WRITE_CHAR((((char) (((thing_1885X)>>8)))), out_1510X, ignoreXX) }
          goto L50628;}
        else {
          if ((3 == (3 & thing_1885X))) {
            if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
              if ((0 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>8))))>>2)))) {
                type_1886X = *((long *) (((char *) (-3 + thing_1885X))));
                if ((3 == (3 & type_1886X))) {
                  if ((9 == (31 & ((((*((long *) ((((char *) (-3 + type_1886X))) + -4))))>>2))))) {
                    if ((2 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + type_1886X))) + -4))))>>8))))>>2)))) {
                      obj_1887X = *((long *) ((((char *) (-3 + type_1886X))) + 8));
                      if ((3 == (3 & obj_1887X))) {
                        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_1887X))) + -4))))>>2))))) {
                          ps_write_string("#{", out_1510X);write_vm_string((*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + thing_1885X)))))))) + 8)))))))), out_1510X);
                          { long ignoreXX;
                          PS_WRITE_CHAR(125, out_1510X, ignoreXX) }
                          goto L50628;}
                        else {
                          goto L22866;}}
                      else {
                        goto L22866;}}
                    else {
                      goto L22866;}}
                  else {
                    goto L22866;}}
                else {
                  goto L22866;}}
              else {
                goto L22866;}}
            else {
              goto L22866;}}
          else {
            goto L22866;}}}}
    else {
      goto L50613;}}
  else {
    goto L50613;}}
 L28385: {
  arg_count_1888X = arg0K0;
  if ((3 == (3 & handlers_1513X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_1513X))) + -4))))>>2))))) {
      goto L28399;}
    else {
      goto L28441;}}
  else {
    goto L28441;}}
 L15146: {
  channel_1889X = arg0K0;
  x_1890X = 1 == (Spending_channels_headS);
  if (x_1890X) {
    goto L15160;}
  else {
    Spending_interruptsS = (8 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L15160;}
      else {
        goto L15160;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L15160;}}}
 L15330: {
  sig_1891X = *(Sos_signal_ringS + (Sos_signal_ring_startS));
  if ((31 == (Sos_signal_ring_startS))) {
    arg0K0 = 0;
    goto L15334;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_startS));
    goto L15334;}}
 L11339: {
  count_1892X = arg0K0;
  i_1893X = arg0K1;
  offset_1894X = arg0K2;
  if ((0 == count_1892X)) {
    if ((i_1893X < total_count_1549X)) {
      arg0K0 = i_1893X;
      arg0K1 = offset_1894X;
      goto L9478;}
    else {
      arg0K0 = offset_1894X;
      goto L63908;}}
  else {
    value_1895X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1894X)))))<<2))));
    addr_1896X = (((char *) (-3 + new_env_1546X))) + (((i_1893X)<<2));S48_WRITE_BARRIER(new_env_1546X, addr_1896X, value_1895X);
    *((long *) addr_1896X) = (long) (value_1895X);
    arg0K0 = (-1 + count_1892X);
    arg0K1 = (1 + i_1893X);
    arg0K2 = (1 + offset_1894X);
    goto L11339;}}
 L14089: {
  count_1897X = arg0K0;
  i_1898X = arg0K1;
  offset_1899X = arg0K2;
  if ((0 == count_1897X)) {
    if ((i_1898X < total_count_1558X)) {
      arg0K0 = i_1898X;
      arg0K1 = offset_1899X;
      goto L10543;}
    else {
      arg0K0 = offset_1899X;
      goto L63899;}}
  else {
    value_1900X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1899X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1899X))))))<<2))));
    addr_1901X = (((char *) (-3 + new_env_1555X))) + (((i_1898X)<<2));S48_WRITE_BARRIER(new_env_1555X, addr_1901X, value_1900X);
    *((long *) addr_1901X) = (long) (value_1900X);
    arg0K0 = (-1 + count_1897X);
    arg0K1 = (1 + i_1898X);
    arg0K2 = (2 + offset_1899X);
    goto L14089;}}
 L58814: {
  pending_interruptP_return_tag = 5;
  goto pending_interruptP;
 pending_interruptP_return_5:
  v_1902X = pending_interruptP0_return_value;
  if (v_1902X) {
    arg0K0 = 2;
    goto L28641;}
  else {
    goto L58821;}}
 L58821: {
  v_1903X = s48_call_native_procedure((SvalS), 2);
  arg0K0 = v_1903X;
  goto L58611;}
 L58956: {
  pop_continuationB_return_tag = 4;
  goto pop_continuationB;
 pop_continuationB_return_4:
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L58741: {
  protocol_skip_1904X = arg0K0;
  SstackS = (ScontS);
  cont_1905X = ScontS;
  pointer_1906X = (((char *) (*((long *) cont_1905X)))) + -2;
  size_1907X = ((((*((unsigned char *) pointer_1906X)))<<8)) + (*((unsigned char *) (pointer_1906X + 1)));
  if ((65535 == size_1907X)) {
    arg0K0 = ((((*((long *) (cont_1905X + 4))))>>2));
    goto L58752;}
  else {
    arg0K0 = size_1907X;
    goto L58752;}}
 L29699: {
  cont_1908X = arg0K0;
  if ((1 == cont_1908X)) {
    if ((0 == (3 & (SvalS)))) {
      s48_Scallback_return_stack_blockS = 1;
      arg0K0 = ((((SvalS))>>2));
      goto L63891;}
    else {
      goto L29714;}}
  else {
    goto L29714;}}
 L59100: {
  v_1909X = arg0K0;
  ScontS = (cont_1604X + (4 + (((v_1909X)<<2))));
  merged_arg0K0 = 0;
  move_args_above_contB_return_tag = 7;
  goto move_args_above_contB;
 move_args_above_contB_return_7:
  goto L59005;}
 L59005: {
  x_1910X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1910X);
  SvalS = proc_1603X;
  arg0K0 = 1;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L58352;}
 L28870: {
  v_1911X = arg0K0;
  SvalS = v_1911X;
  pop_continuationB_return_tag = 5;
  goto pop_continuationB;
 pop_continuationB_return_5:
  arg0K0 = 1;
  goto L32080;}
 L29782: {
  stack_nargs_1912X = arg0K0;
  list_args_1913X = arg0K1;
  merged_arg0K0 = list_args_1913X;
  merged_arg0K1 = stack_nargs_1912X;
  pop_args_GlistSAgc_return_tag = 9;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_9:
  args_1914X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_1914X);
  arg0K0 = 2;
  goto L29353;}
 L32080: {
  bytes_used_1915X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1915X));
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L59285: {
  v_1916X = arg0K0;
  SvalS = v_1916X;
  arg0K0 = 2;
  goto L58741;}
 L28816: {
  if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
    if ((1 == stack_nargs_1616X)) {
      v_1917X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = v_1917X;
      goto L28894;}
    else {
      arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
      goto L28894;}}
  else {
    arg0K0 = stack_nargs_1616X;
    arg0K1 = list_args_1617X;
    goto L29782;}}
 L28933: {
  v_1918X = arg0K0;
  ScontS = (cont_1627X + (4 + (((v_1918X)<<2))));
  merged_arg0K0 = stack_nargs_1616X;
  move_args_above_contB_return_tag = 8;
  goto move_args_above_contB;
 move_args_above_contB_return_8:
  arg0K0 = stack_nargs_1616X;
  arg0K1 = list_args_1617X;
  arg0K2 = list_arg_count_1618X;
  goto L58352;}
 L33130: {
  loc_1919X = arg2K0;
  arg_1920X = arg2K1;
  if ((arg_1920X < arg_top_1632X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1616X)<<2))));
    if ((count_1630X < stack_nargs_1616X)) {
      merged_arg0K0 = list_args_1617X;
      merged_arg0K1 = (stack_nargs_1616X - count_1630X);
      pop_args_GlistSAgc_return_tag = 10;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_10:
      v_1921X = pop_args_GlistSAgc0_return_value;
      arg0K0 = v_1921X;
      goto L33109;}
    else {
      arg0K0 = stack_nargs_1616X;
      arg0K1 = list_args_1617X;
      goto L33091;}}
  else {
    *((long *) loc_1919X) = (long) ((*((long *) arg_1920X)));
    arg2K0 = (loc_1919X + -4);
    arg2K1 = (arg_1920X + -4);
    goto L33130;}}
 L32982: {
  count_1922X = arg0K0;
  bytes_used_1923X = arg0K1;
  stack_nargs_1924X = arg0K2;
  list_args_1925X = arg0K3;
  list_arg_count_1926X = arg0K4;
  if ((count_1922X == (stack_nargs_1924X + list_arg_count_1926X))) {
    arg_top_1927X = SstackS;
    pop_continuationB_return_tag = 6;
    goto pop_continuationB;
   pop_continuationB_return_6:
    arg2K0 = ((SstackS) + -4);
    arg2K1 = (arg_top_1927X + (-4 + (((stack_nargs_1924X)<<2))));
    goto L33014;}
  else {
    merged_arg0K0 = list_args_1925X;
    merged_arg0K1 = stack_nargs_1924X;
    pop_args_GlistSAgc_return_tag = 11;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_11:
    args_1928X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1928X);
    arg0K0 = 2;
    goto L29353;}}
 L33296: {
push_exception_setupB(5, 8);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (template_1054X);
  arg0K0 = 1;
  goto L29353;}
 L18521: {
  if ((3 == (3 & x_1075X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60328;}
    else {
      goto L18527;}}
  else {
    goto L18527;}}
 L49853: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1076X);
  arg0K0 = 1;
  goto L29353;}
 L49848: {
  if ((3 == (3 & n_1076X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
      goto L49853;}
    else {
      goto L49854;}}
  else {
    goto L49854;}}
 L50006: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49989: {
  if ((3 == (3 & n_1640X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
      goto L50006;}
    else {
      goto L49997;}}
  else {
    goto L49997;}}
 L42531: {
  val_1929X = integer_add(arg2_1080X, y_1081X);
  SvalS = val_1929X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42548: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1080X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1081X);
  arg0K0 = 2;
  goto L29353;}
 L11586: {
  b_1930X = arg0K0;
  lo_a_1931X = 65535 & a_1650X;
  lo_b_1932X = 65535 & b_1930X;
  hi_a_1933X = 65535 & (((a_1650X)>>16));
  hi_b_1934X = 65535 & (((b_1930X)>>16));
  lo_c_1935X = SMALL_MULTIPLY(lo_a_1931X, lo_b_1932X);
  v_1936X = SMALL_MULTIPLY(lo_a_1931X, hi_b_1934X);
  v_1937X = SMALL_MULTIPLY(lo_b_1932X, hi_a_1933X);
  mid_c_1938X = v_1936X + v_1937X;
  c_1939X = lo_c_1935X + (((mid_c_1938X)<<16));
  if ((0 < hi_a_1933X)) {
    if ((0 < hi_b_1934X)) {
      val_1940X = integer_multiply(arg2_1083X, y_1084X);
      SvalS = val_1940X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
    else {
      goto L11628;}}
  else {
    goto L11628;}}
 L51752: {
  val_1941X = integer_multiply(arg2_1083X, y_1084X);
  SvalS = val_1941X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L51769: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1083X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1084X);
  arg0K0 = 2;
  goto L29353;}
 L42820: {
  val_1942X = integer_subtract(arg2_1087X, y_1088X);
  SvalS = val_1942X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L42837: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1087X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1088X);
  arg0K0 = 2;
  goto L29353;}
 L11844: {
  b_1943X = arg0K0;
  c_1944X = a_1666X / b_1943X;
  x_1945X = 0 == (a_1666X % b_1943X);
  if (x_1945X) {
    if ((a_1092X < 0)) {
      if ((b_1093X < 0)) {s48_make_availableAgc(16);
        if ((536870911 < c_1944X)) {
          goto L62056;}
        else {
          if ((c_1944X < -536870912)) {
            goto L62056;}
          else {
            arg0K0 = (((c_1944X)<<2));
            goto L62051;}}}
      else {
        goto L11890;}}
    else {
      if ((b_1093X < 0)) {
        goto L11890;}
      else {s48_make_availableAgc(16);
        if ((536870911 < c_1944X)) {
          goto L62078;}
        else {
          if ((c_1944X < -536870912)) {
            goto L62078;}
          else {
            arg0K0 = (((c_1944X)<<2));
            goto L62073;}}}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1090X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_1091X);
    arg0K0 = 2;
    goto L29353;}}
 L52005: {
  if ((0 == (3 & arg2_1090X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20206;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20206;}}
 L52049: {
  result_1946X = arg0K0;
  if ((1 == result_1946X)) {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1090X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_1091X);
    arg0K0 = 2;
    goto L29353;}
  else {
    SvalS = result_1946X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L52056: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1090X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1091X);
  arg0K0 = 2;
  goto L29353;}
 L43105: {
  b_1947X = integerE(arg2_1094X, y_1095X);
  if (b_1947X) {
    arg0K0 = 5;
    goto L43109;}
  else {
    arg0K0 = 1;
    goto L43109;}}
 L43125: {
  val_1948X = arg0K0;
  SvalS = val_1948X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43126: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1094X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1095X);
  arg0K0 = 2;
  goto L29353;}
 L43365: {
  if ((0 == (3 & arg2_1096X))) {
    if ((0 == (3 & y_1097X))) {
      if ((arg2_1096X < y_1097X)) {
        arg0K0 = 5;
        goto L43369;}
      else {
        arg0K0 = 1;
        goto L43369;}}
    else {
      v_1949X = s48_bignum_test((((char *) (-3 + y_1097X))));
      if ((1 == v_1949X)) {
        arg0K0 = 5;
        goto L43369;}
      else {
        arg0K0 = 1;
        goto L43369;}}}
  else {
    if ((0 == (3 & y_1097X))) {
      v_1950X = s48_bignum_test((((char *) (-3 + arg2_1096X))));
      if ((1 == v_1950X)) {
        arg0K0 = 1;
        goto L43369;}
      else {
        arg0K0 = 5;
        goto L43369;}}
    else {
      v_1951X = s48_bignum_compare((((char *) (-3 + arg2_1096X))), (((char *) (-3 + y_1097X))));
      if ((-1 == v_1951X)) {
        arg0K0 = 5;
        goto L43369;}
      else {
        arg0K0 = 1;
        goto L43369;}}}}
 L43385: {
  val_1952X = arg0K0;
  SvalS = val_1952X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43386: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1096X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1097X);
  arg0K0 = 2;
  goto L29353;}
 L43688: {
  if ((0 == (3 & y_1099X))) {
    if ((0 == (3 & arg2_1098X))) {
      if ((y_1099X < arg2_1098X)) {
        arg0K0 = 5;
        goto L43692;}
      else {
        arg0K0 = 1;
        goto L43692;}}
    else {
      v_1953X = s48_bignum_test((((char *) (-3 + arg2_1098X))));
      if ((1 == v_1953X)) {
        arg0K0 = 5;
        goto L43692;}
      else {
        arg0K0 = 1;
        goto L43692;}}}
  else {
    if ((0 == (3 & arg2_1098X))) {
      v_1954X = s48_bignum_test((((char *) (-3 + y_1099X))));
      if ((1 == v_1954X)) {
        arg0K0 = 1;
        goto L43692;}
      else {
        arg0K0 = 5;
        goto L43692;}}
    else {
      v_1955X = s48_bignum_compare((((char *) (-3 + y_1099X))), (((char *) (-3 + arg2_1098X))));
      if ((-1 == v_1955X)) {
        arg0K0 = 5;
        goto L43692;}
      else {
        arg0K0 = 1;
        goto L43692;}}}}
 L43708: {
  val_1956X = arg0K0;
  SvalS = val_1956X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43709: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1098X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1099X);
  arg0K0 = 2;
  goto L29353;}
 L44011: {
  b_1957X = integerLE(arg2_1100X, y_1101X);
  if (b_1957X) {
    arg0K0 = 5;
    goto L44015;}
  else {
    arg0K0 = 1;
    goto L44015;}}
 L44031: {
  val_1958X = arg0K0;
  SvalS = val_1958X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44032: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1100X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1101X);
  arg0K0 = 2;
  goto L29353;}
 L44305: {
  b_1959X = integerGE(arg2_1102X, y_1103X);
  if (b_1959X) {
    arg0K0 = 5;
    goto L44309;}
  else {
    arg0K0 = 1;
    goto L44309;}}
 L44325: {
  val_1960X = arg0K0;
  SvalS = val_1960X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44326: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1102X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1103X);
  arg0K0 = 2;
  goto L29353;}
 L12458: {
  b_1961X = arg0K0;
  c_1962X = a_1681X / b_1961X;
  if ((a_1107X < 0)) {
    if ((b_1108X < 0)) {
      goto L12504;}
    else {
      goto L12503;}}
  else {
    if ((b_1108X < 0)) {
      goto L12503;}
    else {
      goto L12504;}}}
 L44605: {
  val_1963X = Hinteger_op8301(arg2_1104X, y_1105X);
  SvalS = val_1963X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44815: {
  b_1964X = arg0K0;
  c_1965X = a_1682X % b_1964X;
  if ((a_1112X < 0)) {
    arg0K0 = (0 - c_1965X);
    goto L44819;}
  else {
    arg0K0 = c_1965X;
    goto L44819;}}
 L44781: {
  val_1966X = Hinteger_op8232(arg2_1109X, y_1110X);
  SvalS = val_1966X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L53350: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L53344: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1684X);
  arg0K0 = 1;
  goto L29353;}
 L52331: {
  x_1967X = arg0K0;s48_make_availableAgc(16);
  if ((536870911 < x_1967X)) {
    goto L52357;}
  else {
    if ((x_1967X < -536870912)) {
      goto L52357;}
    else {
      arg0K0 = (((x_1967X)<<2));
      goto L52352;}}}
 L23723: {
  length_1968X = arg0K0;
  extra_1969X = arg0K1;
  Stemp0S = x_1687X;s48_make_availableAgc(((((length_1968X + extra_1969X))<<2)));
  value_1970X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1970X))) {
    v_1971X = (char *) s48_long_to_bignum((((value_1970X)>>2)));
    arg2K0 = v_1971X;
    goto L23715;}
  else {
    arg2K0 = (((char *) (-3 + value_1970X)));
    goto L23715;}}
 L45430: {
  x_1972X = arg0K0;
  count_1973X = arg0K1;
  if ((0 == x_1972X)) {
    SvalS = (((count_1973X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    arg0K0 = (((x_1972X)>>1));
    arg0K1 = (count_1973X + (1 & x_1972X));
    goto L45430;}}
 L45515: {
  val_1974X = integer_bitwise_and(arg2_1138X, y_1139X);
  SvalS = val_1974X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45678: {
  val_1975X = integer_bitwise_ior(arg2_1140X, y_1141X);
  SvalS = val_1975X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L45841: {
  val_1976X = integer_bitwise_xor(arg2_1142X, y_1143X);
  SvalS = val_1976X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L52501: {
  v_1977X = (char *) s48_long_to_bignum(x_1698X);
  v_1978X = enter_bignum(v_1977X);
  arg0K0 = v_1978X;
  goto L52496;}
 L52496: {
  val_1979X = arg0K0;
  SvalS = val_1979X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L52523: {
  v_1980X = (char *) s48_long_to_bignum(result_1700X);
  v_1981X = enter_bignum(v_1980X);
  arg0K0 = v_1981X;
  goto L52518;}
 L52518: {
  val_1982X = arg0K0;
  SvalS = val_1982X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L52394: {
  x_1983X = arg0K0;
  y_1984X = arg0K1;
  y_1985X = ((y_1984X)>>2);
  merged_arg0K0 = x_1983X;
  merged_arg0K1 = y_1985X;
  shift_space_return_tag = 1;
  goto shift_space;
 shift_space_return_1:
  needed_1986X = shift_space0_return_value;
  Stemp0S = x_1983X;s48_make_availableAgc((((needed_1986X)<<2)));
  value_1987X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1987X))) {
    v_1988X = (char *) s48_long_to_bignum((((value_1987X)>>2)));
    arg2K0 = v_1988X;
    goto L52468;}
  else {
    arg2K0 = (((char *) (-3 + value_1987X)));
    goto L52468;}}
 L52545: {
  v_1989X = (char *) s48_long_to_bignum(result_1700X);
  v_1990X = enter_bignum(v_1989X);
  arg0K0 = v_1990X;
  goto L52540;}
 L52540: {
  val_1991X = arg0K0;
  SvalS = val_1991X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L52576: {
  x_1992X = arg2K0;
  external_bignum_1993X = (char *) s48_bignum_arithmetic_shift(x_1992X, y_1702X);
  v_1994X = s48_bignum_fits_in_word_p(external_bignum_1993X, 30, 1);
  if (v_1994X) {
    n_1995X = s48_bignum_to_long(external_bignum_1993X);
    arg0K0 = (((n_1995X)<<2));
    goto L52402;}
  else {
    v_1996X = enter_bignum(external_bignum_1993X);
    arg0K0 = v_1996X;
    goto L52402;}}
 L52403: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1144X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1145X);
  arg0K0 = 2;
  goto L29353;}
 L34784: {
  i_1997X = arg0K0;
  rest_list_1998X = arg0K1;
  if ((25 == rest_list_1998X)) {
    SvalS = new_1173X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    *((long *) ((((char *) (-3 + new_1173X))) + (((i_1997X)<<2)))) = (long) ((*((long *) (((char *) (-3 + rest_list_1998X))))));
    arg0K0 = (1 + i_1997X);
    arg0K1 = (*((long *) ((((char *) (-3 + rest_list_1998X))) + 4)));
    goto L34784;}}
 L35197: {
  i_1999X = arg0K0;
  if ((i_1999X < 0)) {
    SvalS = x_1719X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    addr_2000X = (((char *) (-3 + x_1719X))) + (((i_1999X)<<2));S48_WRITE_BARRIER(x_1719X, addr_2000X, value_1720X);
    *((long *) addr_2000X) = (long) (value_1720X);
    arg0K0 = (-1 + i_1999X);
    goto L35197;}}
 L46154: {
  i_2001X = arg0K0;
  if ((i_2001X < 0)) {
    SvalS = vector_1724X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    *((unsigned char *) ((((char *) (-3 + vector_1724X))) + i_2001X)) = (unsigned char) (init_1208X);
    arg0K0 = (-1 + i_2001X);
    goto L46154;}}
 L46339: {
  i_2002X = arg0K0;
  if ((i_2002X < 0)) {
    SvalS = vector_1728X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = init_1222X;
    goto L46426;}}
 L27009: {
  foo_2003X = arg0K0;
  if ((1 == foo_2003X)) {
    if ((3 == (3 & bucket_1741X))) {
      arg0K0 = (-4 & bucket_1741X);
      goto L27014;}
    else {
      arg0K0 = bucket_1741X;
      goto L27014;}}
  else {
    s2_2004X = *((long *) (((char *) (-3 + foo_2003X))));
    len_2005X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_1246X))) + -4))))>>8);
    if ((len_2005X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_2004X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_2004X))), (void *)(((char *) (-3 + string_1246X))),len_2005X)))) {
        arg0K0 = foo_2003X;
        goto L42412;}
      else {
        goto L27029;}}
    else {
      goto L27029;}}}
 L50721: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L46527: {
  index_2006X = arg0K0;
  temp_2007X = index_2006X < (Snumber_of_channelsS);
  if (temp_2007X) {
    goto L46642;}
  else {
    x_2008X = add_more_channels(index_2006X);
    if (x_2008X) {
      goto L46642;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L46531;}}}
 L46589: {
  v_2009X = ps_open_fd(filename_1749X, 1, &v_2010X);
  arg0K0 = v_2009X;
  arg0K1 = v_2010X;
  goto L46598;}
 L46598: {
  channel_2011X = arg0K0;
  status_2012X = arg0K1;
  if ((status_2012X == NO_ERRORS)) {
    arg0K0 = channel_2011X;
    goto L46527;}
  else {push_exception_setupB(24, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((status_2012X)<<2)));
    arg0K0 = 3;
    goto L29353;}}
 L54221: {
  waitP_2013X = arg3K0;
  start_2014X = ((arg3_1268X)>>2);
  count_2015X = ((arg2_1267X)>>2);
  v_2016X = 4 == (*((long *) (((char *) (-3 + arg5_1270X)))));
  if (v_2016X) {
    if ((3 == (3 & arg4_1269X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1269X))) + -4))))>>2))))) {
        if ((3 == (3 & arg4_1269X))) {
          if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1269X))) + -4)))))) {
            if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1269X))) + -4))))>>8)) < (start_2014X + count_2015X))) {
              goto L47044;}
            else {
              got_2017X = ps_read_fd(((((*((long *) ((((char *) (-3 + arg5_1270X))) + 8))))>>2)), ((((char *) (-3 + arg4_1269X))) + start_2014X), count_2015X, waitP_2013X, &eofP_2018X, &pendingP_2019X, &status_2020X);
              if ((status_2020X == NO_ERRORS)) {
                if (eofP_2018X) {
                  arg0K0 = 21;
                  goto L47043;}
                else {
                  if (pendingP_2019X) {
                    addr_2021X = (((char *) (-3 + arg5_1270X))) + 20;S48_WRITE_BARRIER(arg5_1270X, addr_2021X, 5);
                    *((long *) addr_2021X) = (long) (5);
                    arg0K0 = 1;
                    goto L47043;}
                  else {
                    arg0K0 = (((got_2017X)<<2));
                    goto L47043;}}}
              else {
                addr_2022X = s48_allocate_small(8);
                *((long *) addr_2022X) = (long) (1046);
                x_2023X = 3 + (((long) (addr_2022X + 4)));
                *((long *) (((char *) (-3 + x_2023X)))) = (long) ((((status_2020X)<<2)));
                arg0K0 = x_2023X;
                goto L47043;}}}
          else {
            goto L47044;}}
        else {
          goto L47044;}}
      else {
        goto L47044;}}
    else {
      goto L47044;}}
  else {
    goto L47044;}}
 L14941: {
  arg0K0 = (*((long *) ((((char *) (-3 + channel_1294X))) + 20)));
  goto L54573;}
 L14971: {
  val_2024X = *((long *) ((((char *) (-3 + ch_1761X))) + 16));
  addr_2025X = (((char *) (-3 + prev_1762X))) + 16;S48_WRITE_BARRIER(prev_1762X, addr_2025X, val_2024X);
  *((long *) addr_2025X) = (long) (val_2024X);
  addr_2026X = (((char *) (-3 + ch_1761X))) + 16;S48_WRITE_BARRIER(ch_1761X, addr_2026X, 1);
  *((long *) addr_2026X) = (long) (1);
  arg0K0 = (*((long *) ((((char *) (-3 + ch_1761X))) + 20)));
  goto L54573;}
 L21591: {
  v_2027X = arg0K0;
  arg0K0 = (-1 + i_1767X);
  arg0K1 = v_2027X;
  goto L21577;}
 L47588: {
  if ((1 == proposal_1301X)) {
    goto L47600;}
  else {
    addr_2028X = ((char *) (-3 + proposal_1301X));S48_WRITE_BARRIER(proposal_1301X, addr_2028X, 5);
    *((long *) addr_2028X) = (long) (5);
    goto L47600;}}
 L13493: {
  i_2029X = arg0K0;
  stob_2030X = *((long *) ((((char *) (-3 + log_1776X))) + (((i_2029X)<<2))));
  if ((1 == stob_2030X)) {
    copies_2031X = *((long *) ((((char *) (-3 + proposal_1302X))) + 12));
    arg0K0 = copies_2031X;
    goto L47951;}
  else {
    value_2032X = *((long *) ((((char *) (-3 + log_1776X))) + (8 + (((i_2029X)<<2)))));
    verify_2033X = *((long *) ((((char *) (-3 + log_1776X))) + (12 + (((i_2029X)<<2)))));
    if ((29 == verify_2033X)) {
      if ((3 == (3 & stob_2030X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_2030X))) + -4)))))) {
          goto L13545;}
        else {
          goto L47851;}}
      else {
        goto L47851;}}
    else {
      if ((verify_2033X == ((((*((unsigned char *) ((((char *) (-3 + stob_2030X))) + ((((*((long *) ((((char *) (-3 + log_1776X))) + (4 + (((i_2029X)<<2)))))))>>2))))))<<2)))) {
        if ((verify_2033X == value_2032X)) {
          goto L13545;}
        else {
          if ((3 == (3 & stob_2030X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_2030X))) + -4)))))) {
              goto L13545;}
            else {
              goto L47851;}}
          else {
            goto L47851;}}}
      else {
        goto L47851;}}}}
 L13307: {
  arg0K0 = (4 + i_1774X);
  goto L13255;}
 L47851: {
RELEASE_PROPOSAL_LOCK();
  x_2034X = Scurrent_threadS;
  addr_2035X = (((char *) (-3 + x_2034X))) + 12;S48_WRITE_BARRIER(x_2034X, addr_2035X, 1);
  *((long *) addr_2035X) = (long) (1);
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L12970: {
  vector_2036X = arg0K0;
  if ((1 == vector_2036X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_2036X;
    goto L12933;}
  else {
    arg0K0 = vector_2036X;
    goto L12933;}}
 L19742: {
  arg0K0 = (4 + i_1788X);
  goto L19720;}
 L19916: {
  arg0K0 = (4 + i_1792X);
  goto L19896;}
 L55910: {
  minutesP_2037X = arg3K0;
  pending_interruptP_return_tag = 6;
  goto pending_interruptP;
 pending_interruptP_return_6:
  x_2038X = pending_interruptP0_return_value;
  if (x_2038X) {
    goto L55940;}
  else {
    if ((0 == (Spending_interruptsS))) {s48_wait_for_event((((arg2_1392X)>>2)), minutesP_2037X);
      goto L55940;}
    else {
      goto L55940;}}}
 L37422: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1813X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (name_1812X);
  arg0K0 = 2;
  goto L29353;}
 L54828: {
  val_2039X = arg0K0;
  SvalS = val_2039X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L40661: {
  table_2040X = arg0K0;
  v_2041X = Haction4930(arg2_1401X);
  index_2042X = 1023 & v_2041X;
  link_2043X = *((long *) ((((char *) (-3 + table_2040X))) + (((index_2042X)<<2))));
  if ((0 == (3 & link_2043X))) {
    arg0K0 = (3 + (-4 & link_2043X));
    goto L26507;}
  else {
    arg0K0 = link_2043X;
    goto L26507;}}
 L48404: {
  l_2044X = arg0K0;
  i_2045X = arg0K1;
  if ((i_2045X < 0)) {
    SvalS = obj_1830X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    d_2046X = *((long *) (((char *) (-3 + l_2044X))));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = (((d_2046X)>>8));
    goto L48475;}}
 L30034: {
  x_2047X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2047X);
  arg0K0 = 2;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28781;}
 L30333: {
  x_2048X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2048X);
  arg0K0 = 2;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28781;}
 L38092: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1844X);
  arg0K0 = 1;
  goto L29353;}
 L38294: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1851X);
  arg0K0 = 1;
  goto L29353;}
 L38509: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1856X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1857X);
  arg0K0 = 2;
  goto L29353;}
 L38874: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1863X);
  arg0K0 = 1;
  goto L29353;}
 L38730: {
  i_2049X = arg0K0;
  p_2050X = *((long *) ((((char *) (-3 + port_1863X))) + 32));
  codec_2051X = *((long *) ((((char *) (-3 + port_1863X))) + 4));
  l_2052X = ((p_2050X)>>2);
  if ((i_2049X == l_2052X)) {
    val_2053X = ((i_2049X)<<2);
    addr_2054X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2054X, val_2053X);
    *((long *) addr_2054X) = (long) (val_2053X);push_exception_setupB(13, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1863X);
    arg0K0 = 1;
    goto L29353;}
  else {
    if ((0 == (3 & codec_2051X))) {
      encoding_okP_2055X = decode_scalar_value((((codec_2051X)>>2)), ((((char *) (-3 + b_1864X))) + i_2049X), (l_2052X - i_2049X), &okP_2056X, &incompleteP_2057X, &value_2058X, &count_2059X);
      if (encoding_okP_2055X) {
        if (okP_2056X) {
          if (incompleteP_2057X) {
            val_2060X = ((i_2049X)<<2);
            addr_2061X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2061X, val_2060X);
            *((long *) addr_2061X) = (long) (val_2060X);push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1863X);
            arg0K0 = 1;
            goto L29353;}
          else {
            if ((1 == (*((long *) ((((char *) (-3 + port_1863X))) + 8))))) {
              goto L38784;}
            else {
              if ((13 == value_2058X)) {
                addr_2062X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2062X, 5);
                *((long *) addr_2062X) = (long) (5);
                val_2063X = (((i_2049X + count_2059X))<<2);
                addr_2064X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2064X, val_2063X);
                *((long *) addr_2064X) = (long) (val_2063X);
                SvalS = 2569;
                Scode_pointerS = ((Scode_pointerS) + 2);
                arg2K0 = (Scode_pointerS);
                goto L31656;}
              else {
                if ((10 == value_2058X)) {
                  if ((1 == (*((long *) ((((char *) (-3 + port_1863X))) + 36))))) {
                    goto L38784;}
                  else {
                    addr_2065X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2065X, 1);
                    *((long *) addr_2065X) = (long) (1);
                    arg0K0 = (i_2049X + count_2059X);
                    goto L38730;}}
                else {
                  goto L38784;}}}}}
        else {
          val_2066X = ((i_2049X)<<2);
          addr_2067X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2067X, val_2066X);
          *((long *) addr_2067X) = (long) (val_2066X);push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1863X);
          arg0K0 = 1;
          goto L29353;}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1863X);
        arg0K0 = 1;
        goto L29353;}}
    else {
      val_2068X = ((i_2049X)<<2);
      addr_2069X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2069X, val_2068X);
      *((long *) addr_2069X) = (long) (val_2068X);push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1863X);
      arg0K0 = 1;
      goto L29353;}}}
 L39465: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1865X);
  arg0K0 = 1;
  goto L29353;}
 L39321: {
  i_2070X = arg0K0;
  p_2071X = *((long *) ((((char *) (-3 + port_1865X))) + 32));
  codec_2072X = *((long *) ((((char *) (-3 + port_1865X))) + 4));
  l_2073X = ((p_2071X)>>2);
  if ((i_2070X == l_2073X)) {push_exception_setupB(13, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1865X);
    arg0K0 = 1;
    goto L29353;}
  else {
    if ((0 == (3 & codec_2072X))) {
      encoding_okP_2074X = decode_scalar_value((((codec_2072X)>>2)), ((((char *) (-3 + b_1866X))) + i_2070X), (l_2073X - i_2070X), &okP_2075X, &incompleteP_2076X, &value_2077X, &count_2078X);
      if (encoding_okP_2074X) {
        if (okP_2075X) {
          if (incompleteP_2076X) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1865X);
            arg0K0 = 1;
            goto L29353;}
          else {
            if ((1 == (*((long *) ((((char *) (-3 + port_1865X))) + 8))))) {
              SvalS = (9 + (((value_2077X)<<8)));
              Scode_pointerS = ((Scode_pointerS) + 2);
              arg2K0 = (Scode_pointerS);
              goto L31656;}
            else {
              if ((13 == value_2077X)) {
                SvalS = 2569;
                Scode_pointerS = ((Scode_pointerS) + 2);
                arg2K0 = (Scode_pointerS);
                goto L31656;}
              else {
                if ((10 == value_2077X)) {
                  if ((1 == (*((long *) ((((char *) (-3 + port_1865X))) + 36))))) {
                    SvalS = (9 + (((value_2077X)<<8)));
                    Scode_pointerS = ((Scode_pointerS) + 2);
                    arg2K0 = (Scode_pointerS);
                    goto L31656;}
                  else {
                    arg0K0 = (i_2070X + count_2078X);
                    goto L39321;}}
                else {
                  SvalS = (9 + (((value_2077X)<<8)));
                  Scode_pointerS = ((Scode_pointerS) + 2);
                  arg2K0 = (Scode_pointerS);
                  goto L31656;}}}}}
        else {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1865X);
          arg0K0 = 1;
          goto L29353;}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1865X);
        arg0K0 = 1;
        goto L29353;}}
    else {push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1865X);
      arg0K0 = 1;
      goto L29353;}}}
 L40022: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (Kchar_1867X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1868X);
  arg0K0 = 2;
  goto L29353;}
 L39968: {
  codec_okP_2079X = encode_scalar_value((((codec_1869X)>>2)), (((Kchar_1867X)>>8)), ((((char *) (-3 + b_1870X))) + i_1871X), (l_1872X - i_1871X), &encoding_okP_2080X, &out_of_spaceP_2081X, &count_2082X);
  if (codec_okP_2079X) {
    if (encoding_okP_2080X) {
      if (out_of_spaceP_2081X) {push_exception_setupB(13, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (Kchar_1867X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1868X);
        arg0K0 = 2;
        goto L29353;}
      else {
        val_2083X = (((i_1871X + count_2082X))<<2);
        addr_2084X = (((char *) (-3 + port_1868X))) + 28;S48_WRITE_BARRIER(port_1868X, addr_2084X, val_2083X);
        *((long *) addr_2084X) = (long) (val_2083X);
        SvalS = 13;
        Scode_pointerS = ((Scode_pointerS) + 2);
        arg2K0 = (Scode_pointerS);
        goto L31656;}}
    else {push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (Kchar_1867X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1868X);
      arg0K0 = 2;
      goto L29353;}}
  else {push_exception_setupB(5, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (Kchar_1867X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1868X);
    arg0K0 = 2;
    goto L29353;}}
 L50628: {
  arg0K0 = (*((long *) ((((char *) (-3 + stuff_1884X))) + 4)));
  goto L50622;}
 L22866: {
  if ((3 == (3 & thing_1885X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {write_vm_string(thing_1885X, out_1510X);
      goto L50628;}
    else {
      goto L22870;}}
  else {
    goto L22870;}}
 L50613: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, out_1510X, ignoreXX) }
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L28399: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_1513X))) + (((i_1511X)<<2)))));
  obj_2085X = SvalS;
  if ((3 == (3 & obj_2085X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_2085X))) + -4))))>>2))))) {
      goto L28416;}
    else {
      goto L28455;}}
  else {
    goto L28455;}}
 L28441: {
  ps_error("interrupt handler is not a vector", 0);
  goto L28399;}
 L15160: {
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (channel_1889X);
  x_2086X = *((long *) ((((char *) (-3 + channel_1889X))) + 24));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2086X);
  x_2087X = *((long *) ((((char *) (-3 + channel_1889X))) + 20));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2087X);
  n_2088X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_2088X)<<2)));
  arg0K0 = 4;
  goto L28385;}
 L15334: {
  v_2089X = arg0K0;
  Sos_signal_ring_startS = v_2089X;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((sig_1891X)<<2)));
  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_startS))) {
    goto L15192;}
  else {
    Spending_interruptsS = (16 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L15192;}
      else {
        goto L15192;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L15192;}}}
 L9478: {
  i_2090X = arg0K0;
  offset_2091X = arg0K1;
  if ((i_2090X == total_count_1549X)) {
    arg0K0 = offset_2091X;
    goto L63908;}
  else {
    env_2092X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2091X)))))<<2))));
    count_2093X = *((unsigned char *) ((Scode_pointerS) + (2 + offset_2091X)));
    arg0K0 = count_2093X;
    arg0K1 = i_2090X;
    arg0K2 = (2 + offset_2091X);
    goto L9495;}}
 L63908: {
  bytes_used_2094X = arg0K0;
  SvalS = new_env_1000X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_2094X));
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L10543: {
  i_2095X = arg0K0;
  offset_2096X = arg0K1;
  if ((i_2095X == total_count_1558X)) {
    arg0K0 = offset_2096X;
    goto L63899;}
  else {
    env_2097X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2096X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_2096X))))))<<2))));
    index_2098X = 2 + offset_2096X;
    count_2099X = ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_2098X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_2098X))));
    arg0K0 = count_2099X;
    arg0K1 = i_2095X;
    arg0K2 = (4 + offset_2096X);
    goto L10560;}}
 L63899: {
  bytes_used_2100X = arg0K0;
  SvalS = new_env_1006X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_2100X));
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L58752: {
  v_2101X = arg0K0;
  ScontS = (cont_1905X + (4 + (((v_2101X)<<2))));
  v_2102X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  v_2103X = s48_invoke_native_continuation((((long) (((char *) v_2102X)))), protocol_skip_1904X);
  arg0K0 = v_2103X;
  goto L58611;}
 L29714: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);push_exception_setupB(5, 0);
  x_2104X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2104X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (cont_1908X);
  arg0K0 = 2;
  goto L29353;}
 L28894: {
  v_2105X = arg0K0;
  SvalS = v_2105X;
  arg0K0 = cont_1625X;
  goto L29699;}
 L33109: {
  x_2106X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2106X);
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L33091: {
  stack_nargs_2107X = arg0K0;
  l_2108X = arg0K1;
  if ((count_1630X == stack_nargs_2107X)) {
    arg0K0 = l_2108X;
    goto L33109;}
  else {
    x_2109X = *((long *) (((char *) (-3 + l_2108X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2109X);
    arg0K0 = (1 + stack_nargs_2107X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_2108X))) + 4)));
    goto L33091;}}
 L33014: {
  loc_2110X = arg2K0;
  arg_2111X = arg2K1;
  if ((arg_2111X < arg_top_1927X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1924X)<<2))));
    if ((0 == list_arg_count_1926X)) {
      goto L33001;}
    else {
      merged_arg0K0 = list_args_1925X;
      merged_arg0K1 = list_arg_count_1926X;
      push_list_return_tag = 3;
      goto push_list;
     push_list_return_3:
      goto L33001;}}
  else {
    *((long *) loc_2110X) = (long) ((*((long *) arg_2111X)));
    arg2K0 = (loc_2110X + -4);
    arg2K1 = (arg_2111X + -4);
    goto L33014;}}
 L18527: {
  if ((3 == (3 & x_1075X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60328;}
    else {
      arg0K0 = 1;
      goto L60328;}}
  else {
    arg0K0 = 1;
    goto L60328;}}
 L49854: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L49997: {
  if ((3 == (3 & n_1640X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
      goto L50006;}
    else {
      goto L50007;}}
  else {
    goto L50007;}}
 L11628: {
  if ((536870911 < lo_c_1935X)) {
    val_2112X = integer_multiply(arg2_1083X, y_1084X);
    SvalS = val_2112X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    if ((lo_c_1935X < 0)) {
      val_2113X = integer_multiply(arg2_1083X, y_1084X);
      SvalS = val_2113X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31656;}
    else {
      if ((8192 < mid_c_1938X)) {
        val_2114X = integer_multiply(arg2_1083X, y_1084X);
        SvalS = val_2114X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        if ((a_1085X < 0)) {
          if ((b_1086X < 0)) {s48_make_availableAgc(16);
            if ((536870911 < c_1939X)) {
              goto L61953;}
            else {
              if ((c_1939X < -536870912)) {
                goto L61953;}
              else {
                arg0K0 = (((c_1939X)<<2));
                goto L61948;}}}
          else {
            goto L11656;}}
        else {
          if ((b_1086X < 0)) {
            goto L11656;}
          else {s48_make_availableAgc(16);
            if ((536870911 < c_1939X)) {
              goto L61975;}
            else {
              if ((c_1939X < -536870912)) {
                goto L61975;}
              else {
                arg0K0 = (((c_1939X)<<2));
                goto L61970;}}}}}}}}
 L62056: {
  v_2115X = (char *) s48_long_to_bignum(c_1944X);
  v_2116X = enter_bignum(v_2115X);
  arg0K0 = v_2116X;
  goto L62051;}
 L62051: {
  val_2117X = arg0K0;
  SvalS = val_2117X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L11890: {
  x_2118X = 0 - c_1944X;s48_make_availableAgc(16);
  if ((536870911 < x_2118X)) {
    goto L62034;}
  else {
    if ((x_2118X < -536870912)) {
      goto L62034;}
    else {
      arg0K0 = (((x_2118X)<<2));
      goto L62029;}}}
 L62078: {
  v_2119X = (char *) s48_long_to_bignum(c_1944X);
  v_2120X = enter_bignum(v_2119X);
  arg0K0 = v_2120X;
  goto L62073;}
 L62073: {
  val_2121X = arg0K0;
  SvalS = val_2121X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L20206: {
  length0_2122X = arg0K0;
  extra0_2123X = arg0K1;
  if ((0 == (3 & y_1091X))) {
    arg0K0 = 3;
    goto L20214;}
  else {
    arg0K0 = 0;
    goto L20214;}}
 L43109: {
  val_2124X = arg0K0;
  SvalS = val_2124X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43369: {
  val_2125X = arg0K0;
  SvalS = val_2125X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L43692: {
  val_2126X = arg0K0;
  SvalS = val_2126X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44015: {
  val_2127X = arg0K0;
  SvalS = val_2127X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44309: {
  val_2128X = arg0K0;
  SvalS = val_2128X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L12504: {
  if ((536870911 < c_1962X)) {
    val_2129X = Hinteger_op8301(arg2_1104X, y_1105X);
    SvalS = val_2129X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    SvalS = (((c_1962X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L12503: {
  SvalS = ((((0 - c_1962X))<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L44819: {
  n_2130X = arg0K0;
  SvalS = (((n_2130X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L52357: {
  v_2131X = (char *) s48_long_to_bignum(x_1967X);
  v_2132X = enter_bignum(v_2131X);
  arg0K0 = v_2132X;
  goto L52352;}
 L52352: {
  val_2133X = arg0K0;
  SvalS = val_2133X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L23715: {
  x_2134X = arg2K0;
  v_2135X = s48_bignum_test(x_2134X);
  if ((-1 == v_2135X)) {
    v_2136X = (char *) s48_bignum_negate(x_2134X);
    arg2K0 = v_2136X;
    goto L23717;}
  else {
    arg2K0 = x_2134X;
    goto L23717;}}
 L52468: {
  x_2137X = arg2K0;
  external_bignum_2138X = (char *) s48_bignum_arithmetic_shift(x_2137X, y_1985X);
  v_2139X = s48_bignum_fits_in_word_p(external_bignum_2138X, 30, 1);
  if (v_2139X) {
    n_2140X = s48_bignum_to_long(external_bignum_2138X);
    arg0K0 = (((n_2140X)<<2));
    goto L52396;}
  else {
    v_2141X = enter_bignum(external_bignum_2138X);
    arg0K0 = v_2141X;
    goto L52396;}}
 L52402: {
  val_2142X = arg0K0;
  SvalS = val_2142X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L46426: {
  bits_2143X = arg0K0;
  j_2144X = arg0K1;
  shifted_2145X = arg0K2;
  if ((j_2144X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vector_1728X))) + ((((i_2002X)<<2)) + j_2144X))) = (unsigned char) ((255 & shifted_2145X));
    arg0K0 = (8 + bits_2143X);
    arg0K1 = (1 + j_2144X);
    arg0K2 = ((long)(((unsigned long)shifted_2145X)>>8));
    goto L46426;}
  else {
    arg0K0 = (-1 + i_2002X);
    goto L46339;}}
 L27014: {
  b_2146X = arg0K0;
  addr_2147X = s48_allocate_small(12);
  *((long *) addr_2147X) = (long) (2054);
  x_2148X = 3 + (((long) (addr_2147X + 4)));
  *((long *) (((char *) (-3 + x_2148X)))) = (long) (string_1246X);
  *((long *) ((((char *) (-3 + x_2148X))) + 4)) = (long) (b_2146X);
  if ((3 == (3 & x_2148X))) {
    arg0K0 = (-4 & x_2148X);
    goto L27020;}
  else {
    arg0K0 = x_2148X;
    goto L27020;}}
 L42412: {
  val_2149X = arg0K0;
  SvalS = val_2149X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L27029: {
  link_2150X = *((long *) ((((char *) (-3 + foo_2003X))) + 4));
  if ((0 == (3 & link_2150X))) {
    arg0K0 = (3 + (-4 & link_2150X));
    goto L27009;}
  else {
    arg0K0 = link_2150X;
    goto L27009;}}
 L46642: {
  if ((1 == (*((Svm_channelsS) + index_2006X)))) {
    channel_2151X = make_channel((((mode_1260X)<<2)), arg3_1258X, (((index_2006X)<<2)), close_silentlyP_1261X, 1, 1, 1, 0);
    *((Svm_channelsS) + index_2006X) = channel_2151X;
    arg0K0 = channel_2151X;
    arg0K1 = 9;
    goto L46531;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L46531;}}
 L46531: {
  channel_2152X = arg0K0;
  reason_2153X = arg0K1;
  if ((1 == channel_2152X)) {
    if ((3 == (3 & arg4_1259X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1259X))) + -4))))>>2))))) {
        if ((1 == mode_1260X)) {
          goto L46676;}
        else {
          if ((3 == mode_1260X)) {
            goto L46676;}
          else {
            v_2154X = ps_close_fd(index_2006X);
            arg0K0 = v_2154X;
            goto L46671;}}}
      else {push_exception_setupB(reason_2153X, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
        arg0K0 = 2;
        goto L29353;}}
    else {push_exception_setupB(reason_2153X, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29353;}}
  else {
    SvalS = channel_2152X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}}
 L47044: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1270X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1269X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_2014X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_2015X)<<2)));
  if (waitP_2013X) {
    arg0K0 = 5;
    goto L47060;}
  else {
    arg0K0 = 1;
    goto L47060;}}
 L47043: {
  val_2155X = arg0K0;
  SvalS = val_2155X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L47600: {
  x_2156X = Scurrent_threadS;
  addr_2157X = (((char *) (-3 + x_2156X))) + 12;S48_WRITE_BARRIER(x_2156X, addr_2157X, proposal_1301X);
  *((long *) addr_2157X) = (long) (proposal_1301X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L47951: {
  copies_2158X = arg0K0;
  if ((1 == copies_2158X)) {
    log_2159X = *((long *) ((((char *) (-3 + proposal_1302X))) + 4));
    arg0K0 = 0;
    goto L12283;}
  else {
    thing_2160X = *((long *) ((((char *) (-3 + copies_2158X))) + 8));
    if ((3 == (3 & thing_2160X))) {
      if ((0 == (128 & (*((long *) ((((char *) (-3 + thing_2160X))) + -4)))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + copies_2158X))) + 20)));
        goto L47951;}
      else {
        goto L47851;}}
    else {
      goto L47851;}}}
 L13545: {
  arg0K0 = (4 + i_2029X);
  goto L13493;}
 L12933: {
  entry_2161X = arg0K0;
  proposal_2162X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  value_2163X = Stemp0S;
  Stemp0S = 1;
  addr_2164X = ((char *) (-3 + entry_2161X));S48_WRITE_BARRIER(entry_2161X, addr_2164X, value_2163X);
  *((long *) addr_2164X) = (long) (value_2163X);
  addr_2165X = (((char *) (-3 + entry_2161X))) + 4;S48_WRITE_BARRIER(entry_2161X, addr_2165X, from_index_1782X);
  *((long *) addr_2165X) = (long) (from_index_1782X);
  value_2166X = Stemp1S;
  Stemp1S = 1;
  addr_2167X = (((char *) (-3 + entry_2161X))) + 8;S48_WRITE_BARRIER(entry_2161X, addr_2167X, value_2166X);
  *((long *) addr_2167X) = (long) (value_2166X);
  addr_2168X = (((char *) (-3 + entry_2161X))) + 12;S48_WRITE_BARRIER(entry_2161X, addr_2168X, to_index_1783X);
  *((long *) addr_2168X) = (long) (to_index_1783X);
  addr_2169X = (((char *) (-3 + entry_2161X))) + 16;S48_WRITE_BARRIER(entry_2161X, addr_2169X, count_1784X);
  *((long *) addr_2169X) = (long) (count_1784X);
  value_2170X = *((long *) ((((char *) (-3 + proposal_2162X))) + 12));
  addr_2171X = (((char *) (-3 + entry_2161X))) + 20;S48_WRITE_BARRIER(entry_2161X, addr_2171X, value_2170X);
  *((long *) addr_2171X) = (long) (value_2170X);
  addr_2172X = (((char *) (-3 + proposal_2162X))) + 12;S48_WRITE_BARRIER(proposal_2162X, addr_2172X, entry_2161X);
  *((long *) addr_2172X) = (long) (entry_2161X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L55940: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L26507: {
  bucket_2173X = arg0K0;
  arg0K0 = 1;
  arg0K1 = bucket_2173X;
  goto L26514;}
 L48475: {
  bits_2174X = arg0K0;
  j_2175X = arg0K1;
  shifted_2176X = arg0K2;
  if ((j_2175X < 4)) {
    *((unsigned char *) ((((char *) (-3 + obj_1830X))) + ((((i_2045X)<<2)) + j_2175X))) = (unsigned char) ((255 & shifted_2176X));
    arg0K0 = (8 + bits_2174X);
    arg0K1 = (1 + j_2175X);
    arg0K2 = ((long)(((unsigned long)shifted_2176X)>>8));
    goto L48475;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + l_2044X))) + 4)));
    arg0K1 = (-1 + i_2045X);
    goto L48404;}}
 L38784: {
  addr_2177X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2177X, 1);
  *((long *) addr_2177X) = (long) (1);
  val_2178X = (((i_2049X + count_2059X))<<2);
  addr_2179X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2179X, val_2178X);
  *((long *) addr_2179X) = (long) (val_2178X);
  SvalS = (9 + (((value_2058X)<<8)));
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L22870: {
  if ((3 == (3 & thing_1885X))) {
    if ((1 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {write_vm_string((*((long *) (((char *) (-3 + thing_1885X))))), out_1510X);
      goto L50628;}
    else {
      goto L22876;}}
  else {
    goto L22876;}}
 L28416: {
  Senabled_interruptsS = 0;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L28418;}
    else {
      goto L28418;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L28418;}}
 L28455: {
  ps_error("interrupt handler is not a closure", 1, i_1511X);
  goto L28416;}
 L15192: {
  n_2180X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_2180X)<<2)));
  arg0K0 = 2;
  goto L28385;}
 L9495: {
  count_2181X = arg0K0;
  i_2182X = arg0K1;
  offset_2183X = arg0K2;
  if ((0 == count_2181X)) {
    arg0K0 = i_2182X;
    arg0K1 = offset_2183X;
    goto L9478;}
  else {
    value_2184X = *((long *) ((((char *) (-3 + env_2092X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2183X)))))<<2))));
    addr_2185X = (((char *) (-3 + new_env_1546X))) + (((i_2182X)<<2));S48_WRITE_BARRIER(new_env_1546X, addr_2185X, value_2184X);
    *((long *) addr_2185X) = (long) (value_2184X);
    arg0K0 = (-1 + count_2181X);
    arg0K1 = (1 + i_2182X);
    arg0K2 = (1 + offset_2183X);
    goto L9495;}}
 L10560: {
  count_2186X = arg0K0;
  i_2187X = arg0K1;
  offset_2188X = arg0K2;
  if ((0 == count_2186X)) {
    arg0K0 = i_2187X;
    arg0K1 = offset_2188X;
    goto L10543;}
  else {
    value_2189X = *((long *) ((((char *) (-3 + env_2097X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2188X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_2188X))))))<<2))));
    addr_2190X = (((char *) (-3 + new_env_1555X))) + (((i_2187X)<<2));S48_WRITE_BARRIER(new_env_1555X, addr_2190X, value_2189X);
    *((long *) addr_2190X) = (long) (value_2189X);
    arg0K0 = (-1 + count_2186X);
    arg0K1 = (1 + i_2187X);
    arg0K2 = (2 + offset_2188X);
    goto L10560;}}
 L33001: {
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1923X));
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L50007: {
  if ((3 == (3 & n_1640X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (n_1640X);
      arg0K0 = 1;
      goto L29353;}
    else {
      goto L50011;}}
  else {
    goto L50011;}}
 L61953: {
  v_2191X = (char *) s48_long_to_bignum(c_1939X);
  v_2192X = enter_bignum(v_2191X);
  arg0K0 = v_2192X;
  goto L61948;}
 L61948: {
  val_2193X = arg0K0;
  SvalS = val_2193X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L11656: {
  x_2194X = 0 - c_1939X;s48_make_availableAgc(16);
  if ((536870911 < x_2194X)) {
    goto L61931;}
  else {
    if ((x_2194X < -536870912)) {
      goto L61931;}
    else {
      arg0K0 = (((x_2194X)<<2));
      goto L61926;}}}
 L61975: {
  v_2195X = (char *) s48_long_to_bignum(c_1939X);
  v_2196X = enter_bignum(v_2195X);
  arg0K0 = v_2196X;
  goto L61970;}
 L61970: {
  val_2197X = arg0K0;
  SvalS = val_2197X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L62034: {
  v_2198X = (char *) s48_long_to_bignum(x_2118X);
  v_2199X = enter_bignum(v_2198X);
  arg0K0 = v_2199X;
  goto L62029;}
 L62029: {
  val_2200X = arg0K0;
  SvalS = val_2200X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L20214: {
  extra1_2201X = arg0K0;
  Stemp0S = arg2_1090X;
  Stemp1S = y_1091X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_2122X)<<2))))>>1)))) + extra0_2123X) + extra1_2201X))<<2)));
  value_2202X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_2202X))) {
    v_2203X = (char *) s48_long_to_bignum((((value_2202X)>>2)));
    arg2K0 = v_2203X;
    goto L23551;}
  else {
    arg2K0 = (((char *) (-3 + value_2202X)));
    goto L23551;}}
 L23717: {
  external_bignum_2204X = arg2K0;
  v_2205X = s48_bignum_fits_in_word_p(external_bignum_2204X, 30, 1);
  if (v_2205X) {
    n_2206X = s48_bignum_to_long(external_bignum_2204X);
    arg0K0 = (((n_2206X)<<2));
    goto L52334;}
  else {
    val_2207X = enter_bignum(external_bignum_2204X);
    arg0K0 = val_2207X;
    goto L52334;}}
 L52396: {
  val_2208X = arg0K0;
  SvalS = val_2208X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L27020: {
  value_2209X = arg0K0;
  addr_2210X = (((char *) (-3 + table_1245X))) + (((index_1248X)<<2));S48_WRITE_BARRIER(table_1245X, addr_2210X, value_2209X);
  *((long *) addr_2210X) = (long) (value_2209X);
  arg0K0 = x_2148X;
  goto L42412;}
 L46676: {
  v_2211X = ps_close_fd(index_2006X);
  arg0K0 = v_2211X;
  goto L46671;}
 L46671: {
  status_2212X = arg0K0;
  if ((status_2212X == NO_ERRORS)) {push_exception_setupB(reason_2153X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    arg0K0 = 2;
    goto L29353;}
  else {channel_close_error(status_2212X, index_2006X, arg4_1259X);push_exception_setupB(reason_2153X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    arg0K0 = 2;
    goto L29353;}}
 L47060: {
  x_2213X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2213X);
  arg0K0 = 5;
  goto L29353;}
 L12283: {
  i_2214X = arg0K0;
  stob_2215X = *((long *) ((((char *) (-3 + log_2159X))) + (((i_2214X)<<2))));
  if ((1 == stob_2215X)) {
    log_2216X = *((long *) ((((char *) (-3 + proposal_1302X))) + 8));
    arg0K0 = 0;
    goto L15972;}
  else {
    value_2217X = *((long *) ((((char *) (-3 + log_2159X))) + (8 + (((i_2214X)<<2)))));
    verify_2218X = *((long *) ((((char *) (-3 + log_2159X))) + (12 + (((i_2214X)<<2)))));
    if ((verify_2218X == value_2217X)) {
      goto L12315;}
    else {
      addr_2219X = (((char *) (-3 + stob_2215X))) + (-4 & (*((long *) ((((char *) (-3 + log_2159X))) + (4 + (((i_2214X)<<2)))))));S48_WRITE_BARRIER(stob_2215X, addr_2219X, value_2217X);
      *((long *) addr_2219X) = (long) (value_2217X);
      goto L12315;}}}
 L26514: {
  previous_foo_2220X = arg0K0;
  foo_2221X = arg0K1;
  if ((1 == foo_2221X)) {
    goto L40663;}
  else {
    s2_2222X = *((long *) (((char *) (-3 + foo_2221X))));
    len_2223X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1401X))) + -4))))>>8);
    if ((len_2223X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_2222X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_2222X))), (void *)(((char *) (-3 + arg2_1401X))),len_2223X)))) {
        if ((1 == previous_foo_2220X)) {
          value_2224X = *((long *) ((((char *) (-3 + foo_2221X))) + 12));
          addr_2225X = (((char *) (-3 + table_2040X))) + (((index_2042X)<<2));S48_WRITE_BARRIER(table_2040X, addr_2225X, value_2224X);
          *((long *) addr_2225X) = (long) (value_2224X);
          goto L40663;}
        else {
          val_2226X = *((long *) ((((char *) (-3 + foo_2221X))) + 12));
          addr_2227X = (((char *) (-3 + previous_foo_2220X))) + 12;S48_WRITE_BARRIER(previous_foo_2220X, addr_2227X, val_2226X);
          *((long *) addr_2227X) = (long) (val_2226X);
          goto L40663;}}
      else {
        goto L26573;}}
    else {
      goto L26573;}}}
 L22876: {
  if ((1 == thing_1885X)) {
    goto L22881;}
  else {
    if ((5 == thing_1885X)) {
      goto L22881;}
    else {
      if ((25 == thing_1885X)) {
        arg4K0 = "()";
        goto L22920;}
      else {
        if ((3 == (3 & thing_1885X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
            arg4K0 = "(...)";
            goto L22920;}
          else {
            goto L22894;}}
        else {
          goto L22894;}}}}}
 L28418: {
  arg0K0 = arg_count_1888X;
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = (-2 - i_1511X);
  goto L59401;}
 L50011: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L61931: {
  v_2228X = (char *) s48_long_to_bignum(x_2194X);
  v_2229X = enter_bignum(v_2228X);
  arg0K0 = v_2229X;
  goto L61926;}
 L61926: {
  val_2230X = arg0K0;
  SvalS = val_2230X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L23551: {
  x_2231X = arg2K0;
  value_2232X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_2232X))) {
    v_2233X = (char *) s48_long_to_bignum((((value_2232X)>>2)));
    arg2K0 = v_2233X;
    goto L23555;}
  else {
    arg2K0 = (((char *) (-3 + value_2232X)));
    goto L23555;}}
 L52334: {
  val_2234X = arg0K0;
  SvalS = val_2234X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L15972: {
  i_2235X = arg0K0;
  stob_2236X = *((long *) ((((char *) (-3 + log_2216X))) + (((i_2235X)<<2))));
  if ((1 == stob_2236X)) {
    copies_2237X = *((long *) ((((char *) (-3 + proposal_1302X))) + 12));
    arg0K0 = copies_2237X;
    goto L15887;}
  else {
    value_2238X = *((long *) ((((char *) (-3 + log_2216X))) + (8 + (((i_2235X)<<2)))));
    verify_2239X = *((long *) ((((char *) (-3 + log_2216X))) + (12 + (((i_2235X)<<2)))));
    if ((verify_2239X == value_2238X)) {
      goto L16004;}
    else {
      *((unsigned char *) ((((char *) (-3 + stob_2236X))) + ((((*((long *) ((((char *) (-3 + log_2216X))) + (4 + (((i_2235X)<<2)))))))>>2)))) = (unsigned char) ((((value_2238X)>>2)));
      goto L16004;}}}
 L12315: {
  arg0K0 = (4 + i_2214X);
  goto L12283;}
 L40663: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31656;}
 L26573: {
  link_2240X = *((long *) ((((char *) (-3 + foo_2221X))) + 12));
  if ((0 == (3 & link_2240X))) {
    arg0K0 = foo_2221X;
    arg0K1 = (3 + (-4 & link_2240X));
    goto L26514;}
  else {
    arg0K0 = foo_2221X;
    arg0K1 = link_2240X;
    goto L26514;}}
 L22881: {
  if ((1 == thing_1885X)) {
    arg4K0 = "#f";
    goto L22920;}
  else {
    arg4K0 = "#t";
    goto L22920;}}
 L22920: {
  v_2241X = arg4K0;
  ps_write_string(v_2241X, out_1510X);
  goto L50628;}
 L22894: {
  if ((3 == (3 & thing_1885X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#(...)";
      goto L22920;}
    else {
      goto L22898;}}
  else {
    goto L22898;}}
 L23555: {
  y_2242X = arg2K0;
  div_by_zeroP_2243X = s48_bignum_divide(x_2231X, y_2242X, &quot_2244X, &rem_2245X);
  if (div_by_zeroP_2243X) {
    v_2246X = s48_bignum_fits_in_word_p(y_2242X, 30, 1);
    if (v_2246X) {
      n_2247X = s48_bignum_to_long(y_2242X);
      arg0K0 = (((n_2247X)<<2));
      goto L23577;}
    else {
      v_2248X = enter_bignum(y_2242X);
      arg0K0 = v_2248X;
      goto L23577;}}
  else {
    v_2249X = s48_bignum_fits_in_word_p(y_2242X, 30, 1);
    if (v_2249X) {
      n_2250X = s48_bignum_to_long(y_2242X);
      arg0K0 = (((n_2250X)<<2));
      goto L23586;}
    else {
      v_2251X = enter_bignum(y_2242X);
      arg0K0 = v_2251X;
      goto L23586;}}}
 L15887: {
  copies_2252X = arg0K0;
  if ((1 == copies_2252X)) {
    value_2253X = Sempty_logS;
    addr_2254X = (((char *) (-3 + proposal_1302X))) + 4;S48_WRITE_BARRIER(proposal_1302X, addr_2254X, value_2253X);
    *((long *) addr_2254X) = (long) (value_2253X);
    value_2255X = Sempty_logS;
    addr_2256X = (((char *) (-3 + proposal_1302X))) + 8;S48_WRITE_BARRIER(proposal_1302X, addr_2256X, value_2255X);
    *((long *) addr_2256X) = (long) (value_2255X);
    addr_2257X = (((char *) (-3 + proposal_1302X))) + 12;S48_WRITE_BARRIER(proposal_1302X, addr_2257X, 1);
    *((long *) addr_2257X) = (long) (1);RELEASE_PROPOSAL_LOCK();
    x_2258X = Scurrent_threadS;
    addr_2259X = (((char *) (-3 + x_2258X))) + 12;S48_WRITE_BARRIER(x_2258X, addr_2259X, 1);
    *((long *) addr_2259X) = (long) (1);
    SvalS = 5;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31656;}
  else {
    stob_2260X = *((long *) ((((char *) (-3 + copies_2252X))) + 8));
    v_2261X = (((*((long *) ((((char *) (-3 + copies_2252X))) + 12))))>>2);
    stob_2262X = *((long *) (((char *) (-3 + copies_2252X))));
    v_2263X = (((*((long *) ((((char *) (-3 + copies_2252X))) + 4))))>>2);
    v_2264X = (((*((long *) ((((char *) (-3 + copies_2252X))) + 16))))>>2);
    memmove((void *)((((char *) (-3 + stob_2260X))) + v_2261X), (void *)((((char *) (-3 + stob_2262X))) + v_2263X),v_2264X);
    arg0K0 = (*((long *) ((((char *) (-3 + copies_2252X))) + 20)));
    goto L15887;}}
 L16004: {
  arg0K0 = (4 + i_2235X);
  goto L15972;}
 L22898: {
  if ((3 == (3 & thing_1885X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{procedure}";
      goto L22920;}
    else {
      goto L22902;}}
  else {
    goto L22902;}}
 L23577: {
  v_2265X = arg0K0;
  v_2266X = s48_bignum_fits_in_word_p(x_2231X, 30, 1);
  if (v_2266X) {
    n_2267X = s48_bignum_to_long(x_2231X);
    arg3K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = (((n_2267X)<<2));
    arg0K4 = v_2265X;
    goto L52012;}
  else {
    v_2268X = enter_bignum(x_2231X);
    arg3K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = v_2268X;
    arg0K4 = v_2265X;
    goto L52012;}}
 L23586: {
  v_2269X = arg0K0;
  v_2270X = s48_bignum_fits_in_word_p(rem_2245X, 30, 1);
  if (v_2270X) {
    n_2271X = s48_bignum_to_long(rem_2245X);
    arg0K0 = (((n_2271X)<<2));
    goto L23582;}
  else {
    v_2272X = enter_bignum(rem_2245X);
    arg0K0 = v_2272X;
    goto L23582;}}
 L22902: {
  if ((3 == (3 & thing_1885X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{template}";
      goto L22920;}
    else {
      goto L22906;}}
  else {
    goto L22906;}}
 L52012: {
  div_by_zeroP_2273X = arg3K0;
  quot_2274X = arg0K1;
  rem_2275X = arg0K2;
  x_2276X = arg0K3;
  y_2277X = arg0K4;
  if (div_by_zeroP_2273X) {
    goto L52035;}
  else {
    if ((0 == (3 & rem_2275X))) {
      if ((0 == rem_2275X)) {
        SvalS = quot_2274X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31656;}
      else {
        goto L52035;}}
    else {
      goto L52035;}}}
 L23582: {
  v_2278X = arg0K0;
  v_2279X = s48_bignum_fits_in_word_p(quot_2244X, 30, 1);
  if (v_2279X) {
    n_2280X = s48_bignum_to_long(quot_2244X);
    arg0K0 = (((n_2280X)<<2));
    goto L23580;}
  else {
    v_2281X = enter_bignum(quot_2244X);
    arg0K0 = v_2281X;
    goto L23580;}}
 L22906: {
  if ((3 == (3 & thing_1885X))) {
    if ((4 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{location}";
      goto L22920;}
    else {
      goto L22910;}}
  else {
    goto L22910;}}
 L52035: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2276X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_2277X);
  arg0K0 = 2;
  goto L29353;}
 L23580: {
  v_2282X = arg0K0;
  v_2283X = s48_bignum_fits_in_word_p(x_2231X, 30, 1);
  if (v_2283X) {
    n_2284X = s48_bignum_to_long(x_2231X);
    arg3K0 = 0;
    arg0K1 = v_2282X;
    arg0K2 = v_2278X;
    arg0K3 = (((n_2284X)<<2));
    arg0K4 = v_2269X;
    goto L52012;}
  else {
    v_2285X = enter_bignum(x_2231X);
    arg3K0 = 0;
    arg0K1 = v_2282X;
    arg0K2 = v_2278X;
    arg0K3 = v_2285X;
    arg0K4 = v_2269X;
    goto L52012;}}
 L22910: {
  if ((3 == (3 & thing_1885X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{code-vector}";
      goto L22920;}
    else {
      goto L22914;}}
  else {
    goto L22914;}}
 L22914: {
  if ((3 == (3 & thing_1885X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{continuation}";
      goto L22920;}
    else {
      arg4K0 = "???";
      goto L22920;}}
  else {
    arg4K0 = "???";
    goto L22920;}}
 loseD0: {
  message_884X = merged_arg4K0;{
  ps_write_string("Template UIDs: ", (stderr));
  current_code_2286X = current_code_vector();
  out_2287X = stderr;
  merged_arg2K0 = (SstackS);
  merged_arg0K1 = (((((ScontS) - (SstackS)))>>2));
  merged_arg0K2 = current_code_2286X;
  find_template_return_tag = 0;
  goto find_template;
 find_template_return_0:
  template_2288X = find_template0_return_value;
  merged_arg0K0 = template_2288X;
  merged_arg3K1 = 0;
  merged_arg5K2 = out_2287X;
  maybe_write_template_return_tag = 0;
  goto maybe_write_template;
 maybe_write_template_return_0:
  not_firstP_2289X = maybe_write_template0_return_value;
  arg2K0 = (ScontS);
  arg3K1 = not_firstP_2289X;
  goto L26459;}
 L26459: {
  cont_2290X = arg2K0;
  not_firstP_2291X = arg3K1;
  if ((cont_2290X == (Sbottom_of_stackS))) {
    cont_2292X = Sheap_continuationS;
    arg0K0 = cont_2292X;
    arg3K1 = not_firstP_2291X;
    goto L25747;}
  else {
    code_pointer_2293X = ((char *) (*((long *) cont_2290X)));
    pointer_2294X = code_pointer_2293X + -5;
    v_2295X = 3 + (((long) (code_pointer_2293X + (0 - (((((*((unsigned char *) pointer_2294X)))<<8)) + (*((unsigned char *) (pointer_2294X + 1))))))));
    pointer_2296X = (((char *) (*((long *) cont_2290X)))) + -2;
    size_2297X = ((((*((unsigned char *) pointer_2296X)))<<8)) + (*((unsigned char *) (pointer_2296X + 1)));
    if ((65535 == size_2297X)) {
      arg0K0 = ((((*((long *) (cont_2290X + 4))))>>2));
      goto L20995;}
    else {
      arg0K0 = size_2297X;
      goto L20995;}}}
 L25747: {
  cont_2298X = arg0K0;
  not_firstP_2299X = arg3K1;
  if ((3 == (3 & cont_2298X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_2298X))) + -4))))>>2))))) {
      merged_arg2K0 = (((char *) (-3 + cont_2298X)));
      merged_arg0K1 = ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_2298X))) + -4))))>>8))))>>2));
      merged_arg0K2 = (*((long *) ((((char *) (-3 + cont_2298X))) + 4)));
      find_template_return_tag = 1;
      goto find_template;
     find_template_return_1:
      v_2300X = find_template0_return_value;
      merged_arg0K0 = v_2300X;
      merged_arg3K1 = not_firstP_2299X;
      merged_arg5K2 = out_2287X;
      maybe_write_template_return_tag = 1;
      goto maybe_write_template;
     maybe_write_template_return_1:
      v_2301X = maybe_write_template0_return_value;
      arg0K0 = (*((long *) ((((char *) (-3 + cont_2298X))) + 8)));
      arg3K1 = v_2301X;
      goto L25747;}
    else {
      goto L29451;}}
  else {
    goto L29451;}}
 L20995: {
  v_2302X = arg0K0;
  merged_arg2K0 = (cont_2290X + 4);
  merged_arg0K1 = v_2302X;
  merged_arg0K2 = v_2295X;
  find_template_return_tag = 2;
  goto find_template;
 find_template_return_2:
  v_2303X = find_template0_return_value;
  merged_arg0K0 = v_2303X;
  merged_arg3K1 = not_firstP_2291X;
  merged_arg5K2 = out_2287X;
  maybe_write_template_return_tag = 2;
  goto maybe_write_template;
 maybe_write_template_return_2:
  v_2304X = maybe_write_template0_return_value;
  pointer_2305X = (((char *) (*((long *) cont_2290X)))) + -2;
  size_2306X = ((((*((unsigned char *) pointer_2305X)))<<8)) + (*((unsigned char *) (pointer_2305X + 1)));
  if ((65535 == size_2306X)) {
    arg0K0 = ((((*((long *) (cont_2290X + 4))))>>2));
    goto L26477;}
  else {
    arg0K0 = size_2306X;
    goto L26477;}}
 L29451: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  why_2307X = (((*((long *) ((SstackS) + (((nargs_921X)<<2))))))>>2);
  if ((why_2307X == 1)) {
    if ((0 == (3 & (*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_921X)<<2)))))))))))))) {
      ps_error(message_884X, 3, opcode_922X, why_2307X, ((((*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_921X)<<2))))))))))))>>2)));
      goto loseD0_return;}
    else {
      goto L29398;}}
  else {
    goto L29398;}}
 L26477: {
  v_2308X = arg0K0;
  arg2K0 = (cont_2290X + (4 + (((v_2308X)<<2))));
  arg3K1 = v_2304X;
  goto L26459;}
 L29398: {
  ps_error(message_884X, 2, opcode_922X, why_2307X);
  goto loseD0_return;}
 loseD0_return:
  switch (loseD0_return_tag) {
  case 0: goto loseD0_return_0;
  default: goto loseD0_return_1;
  }}

 maybe_write_template: {
  template_881X = merged_arg0K0;
  not_firstP_882X = merged_arg3K1;
  out_883X = merged_arg5K2;{
  if (not_firstP_882X) {
    ps_write_string(" <- ", out_883X);
    goto L22593;}
  else {
    goto L22593;}}
 L22593: {
  if ((3 == (3 & template_881X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + template_881X))) + -4))))>>2))))) {
      name_2309X = *((long *) ((((char *) (-3 + template_881X))) + 8));
      if ((0 == (3 & name_2309X))) {
        ps_write_integer((((name_2309X)>>2)), out_883X);
        maybe_write_template0_return_value = 1;
        goto maybe_write_template_return;}
      else {
        if ((3 == (3 & name_2309X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_2309X))) + -4))))>>2))))) {
            obj_2310X = *((long *) ((((char *) (-3 + name_2309X))) + 8));
            if ((3 == (3 & obj_2310X))) {
              if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_2310X))) + -4))))>>2))))) {write_vm_string((*((long *) ((((char *) (-3 + name_2309X))) + 8))), out_883X);
                maybe_write_template0_return_value = 1;
                goto maybe_write_template_return;}
              else {
                goto L22628;}}
            else {
              goto L22628;}}
          else {
            goto L22628;}}
        else {
          goto L22628;}}}
    else {
      goto L22651;}}
  else {
    goto L22651;}}
 L22628: {
  if ((3 == (3 & name_2309X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_2309X))) + -4))))>>2))))) {
      obj_2311X = *((long *) ((((char *) (-3 + name_2309X))) + 8));
      if ((3 == (3 & obj_2311X))) {
        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_2311X))) + -4))))>>2))))) {write_vm_string((*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + name_2309X))) + 8)))))))), out_883X);
          maybe_write_template0_return_value = 1;
          goto maybe_write_template_return;}
        else {
          goto L22648;}}
      else {
        goto L22648;}}
    else {
      goto L22648;}}
  else {
    goto L22648;}}
 L22651: {
  ps_write_string(" ?? ", out_883X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 L22648: {
  ps_write_string("?", out_883X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 maybe_write_template_return:
  switch (maybe_write_template_return_tag) {
  case 0: goto maybe_write_template_return_0;
  case 1: goto maybe_write_template_return_1;
  default: goto maybe_write_template_return_2;
  }}

 find_template: {
  start_878X = merged_arg2K0;
  count_879X = merged_arg0K1;
  code_vector_880X = merged_arg0K2;{
  arg0K0 = 0;
  goto L18006;}
 L18006: {
  i_2312X = arg0K0;
  if ((i_2312X == count_879X)) {
    find_template0_return_value = 1;
    goto find_template_return;}
  else {
    next_2313X = *((long *) (start_878X + (((i_2312X)<<2))));
    if ((3 == (3 & next_2313X))) {
      if ((12 == (31 & ((((*((long *) ((((char *) (-3 + next_2313X))) + -4))))>>2))))) {
        if (((*((long *) (((char *) (-3 + next_2313X))))) == code_vector_880X)) {
          find_template0_return_value = next_2313X;
          goto find_template_return;}
        else {
          goto L18028;}}
      else {
        goto L18028;}}
    else {
      goto L18028;}}}
 L18028: {
  arg0K0 = (1 + i_2312X);
  goto L18006;}
 find_template_return:
  switch (find_template_return_tag) {
  case 0: goto find_template_return_0;
  case 1: goto find_template_return_1;
  default: goto find_template_return_2;
  }}

 rest_list_setupAgc: {
  wants_stack_args_874X = merged_arg0K0;
  stack_arg_count_875X = merged_arg0K1;
  list_args_876X = merged_arg0K2;
  list_arg_count_877X = merged_arg0K3;{
  if ((stack_arg_count_875X == wants_stack_args_874X)) {
    merged_arg0K0 = list_args_876X;
    merged_arg0K1 = list_arg_count_877X;
    copy_listSAgc_return_tag = 1;
    goto copy_listSAgc;
   copy_listSAgc_return_1:
    x_2314X = copy_listSAgc0_return_value;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2314X);
    goto rest_list_setupAgc_return;}
  else {
    if ((stack_arg_count_875X < wants_stack_args_874X)) {
      count_2315X = wants_stack_args_874X - stack_arg_count_875X;
      merged_arg0K0 = list_args_876X;
      merged_arg0K1 = count_2315X;
      push_list_return_tag = 4;
      goto push_list;
     push_list_return_4:
      v_2316X = push_list0_return_value;
      merged_arg0K0 = v_2316X;
      merged_arg0K1 = (list_arg_count_877X - count_2315X);
      copy_listSAgc_return_tag = 2;
      goto copy_listSAgc;
     copy_listSAgc_return_2:
      x_2317X = copy_listSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_2317X);
      goto rest_list_setupAgc_return;}
    else {
      merged_arg0K0 = list_args_876X;
      merged_arg0K1 = list_arg_count_877X;
      copy_listSAgc_return_tag = 3;
      goto copy_listSAgc;
     copy_listSAgc_return_3:
      v_2318X = copy_listSAgc0_return_value;
      merged_arg0K0 = v_2318X;
      merged_arg0K1 = (stack_arg_count_875X - wants_stack_args_874X);
      pop_args_GlistSAgc_return_tag = 12;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_12:
      x_2319X = pop_args_GlistSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_2319X);
      goto rest_list_setupAgc_return;}}}
 rest_list_setupAgc_return:
  switch (rest_list_setupAgc_return_tag) {
  case 0: goto rest_list_setupAgc_return_0;
  default: goto rest_list_setupAgc_return_1;
  }}

 push_list: {
  list_872X = merged_arg0K0;
  count_873X = merged_arg0K1;{
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (list_872X);
  merged_arg0K0 = count_873X;
  ensure_stack_spaceB_return_tag = 2;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_2:
  v_2320X = ensure_stack_spaceB0_return_value;
  if (v_2320X) {
    s48_Sstack_limitS = (((char *) -1));
    goto L27851;}
  else {
    goto L27851;}}
 L27851: {
  list_2321X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  arg0K0 = count_873X;
  arg0K1 = list_2321X;
  goto L27860;}
 L27860: {
  i_2322X = arg0K0;
  l_2323X = arg0K1;
  if ((0 < i_2322X)) {
    x_2324X = *((long *) (((char *) (-3 + l_2323X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2324X);
    arg0K0 = (-1 + i_2322X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_2323X))) + 4)));
    goto L27860;}
  else {
    push_list0_return_value = l_2323X;
    goto push_list_return;}}
 push_list_return:
  switch (push_list_return_tag) {
  case 0: goto push_list_return_0;
  case 1: goto push_list_return_1;
  case 2: goto push_list_return_2;
  case 3: goto push_list_return_3;
  default: goto push_list_return_4;
  }}

 ensure_stack_spaceB: {
  need_871X = merged_arg0K0;{
  if ((((SstackS) + (256 - (((need_871X)<<2)))) < (s48_Sstack_limitS))) {
    interruptP_2325X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((((SstackS) + (256 - (((need_871X)<<2)))) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if ((((SstackS) + (256 - (((need_871X)<<2)))) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        ensure_stack_spaceB0_return_value = interruptP_2325X;
        goto ensure_stack_spaceB_return;}
      else {
        ensure_stack_spaceB0_return_value = interruptP_2325X;
        goto ensure_stack_spaceB_return;}}
    else {
      ensure_stack_spaceB0_return_value = interruptP_2325X;
      goto ensure_stack_spaceB_return;}}
  else {
    ensure_stack_spaceB0_return_value = 0;
    goto ensure_stack_spaceB_return;}}
 ensure_stack_spaceB_return:
  switch (ensure_stack_spaceB_return_tag) {
  case 0: goto ensure_stack_spaceB_return_0;
  case 1: goto ensure_stack_spaceB_return_1;
  default: goto ensure_stack_spaceB_return_2;
  }}

 pop_args_GlistSAgc: {
  start_869X = merged_arg0K0;
  count_870X = merged_arg0K1;{
  Stemp0S = start_869X;s48_make_availableAgc(((((3 * count_870X))<<2)));
  value_2326X = Stemp0S;
  Stemp0S = 1;
  arg0K0 = value_2326X;
  arg0K1 = count_870X;
  goto L21780;}
 L21780: {
  args_2327X = arg0K0;
  count_2328X = arg0K1;
  if ((0 == count_2328X)) {
    pop_args_GlistSAgc0_return_value = args_2327X;
    goto pop_args_GlistSAgc_return;}
  else {
    a_2329X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    addr_2330X = s48_allocate_small(12);
    *((long *) addr_2330X) = (long) (2050);
    x_2331X = 3 + (((long) (addr_2330X + 4)));
    *((long *) (((char *) (-3 + x_2331X)))) = (long) (a_2329X);
    *((long *) ((((char *) (-3 + x_2331X))) + 4)) = (long) (args_2327X);
    arg0K0 = x_2331X;
    arg0K1 = (-1 + count_2328X);
    goto L21780;}}
 pop_args_GlistSAgc_return:
  switch (pop_args_GlistSAgc_return_tag) {
  case 0: goto pop_args_GlistSAgc_return_0;
  case 1: goto pop_args_GlistSAgc_return_1;
  case 2: goto pop_args_GlistSAgc_return_2;
  case 3: goto pop_args_GlistSAgc_return_3;
  case 4: goto pop_args_GlistSAgc_return_4;
  case 5: goto pop_args_GlistSAgc_return_5;
  case 6: goto pop_args_GlistSAgc_return_6;
  case 7: goto pop_args_GlistSAgc_return_7;
  case 8: goto pop_args_GlistSAgc_return_8;
  case 9: goto pop_args_GlistSAgc_return_9;
  case 10: goto pop_args_GlistSAgc_return_10;
  case 11: goto pop_args_GlistSAgc_return_11;
  default: goto pop_args_GlistSAgc_return_12;
  }}

 copy_listSAgc: {
  list_867X = merged_arg0K0;
  length_868X = merged_arg0K1;{
  if ((0 == length_868X)) {
    copy_listSAgc0_return_value = 25;
    goto copy_listSAgc_return;}
  else {
    Stemp0S = list_867X;s48_make_availableAgc(((((3 * length_868X))<<2)));
    value_2332X = Stemp0S;
    Stemp0S = 1;
    a_2333X = *((long *) (((char *) (-3 + value_2332X))));
    addr_2334X = s48_allocate_small(12);
    *((long *) addr_2334X) = (long) (2050);
    x_2335X = 3 + (((long) (addr_2334X + 4)));
    *((long *) (((char *) (-3 + x_2335X)))) = (long) (a_2333X);
    *((long *) ((((char *) (-3 + x_2335X))) + 4)) = (long) (25);
    arg0K0 = (*((long *) ((((char *) (-3 + value_2332X))) + 4)));
    arg0K1 = x_2335X;
    goto L21668;}}
 L21668: {
  l_2336X = arg0K0;
  last_2337X = arg0K1;
  if ((25 == l_2336X)) {
    copy_listSAgc0_return_value = x_2335X;
    goto copy_listSAgc_return;}
  else {
    a_2338X = *((long *) (((char *) (-3 + l_2336X))));
    addr_2339X = s48_allocate_small(12);
    *((long *) addr_2339X) = (long) (2050);
    x_2340X = 3 + (((long) (addr_2339X + 4)));
    *((long *) (((char *) (-3 + x_2340X)))) = (long) (a_2338X);
    *((long *) ((((char *) (-3 + x_2340X))) + 4)) = (long) (25);
    addr_2341X = (((char *) (-3 + last_2337X))) + 4;S48_WRITE_BARRIER(last_2337X, addr_2341X, x_2340X);
    *((long *) addr_2341X) = (long) (x_2340X);
    arg0K0 = (*((long *) ((((char *) (-3 + l_2336X))) + 4)));
    arg0K1 = x_2340X;
    goto L21668;}}
 copy_listSAgc_return:
  switch (copy_listSAgc_return_tag) {
  case 0: goto copy_listSAgc_return_0;
  case 1: goto copy_listSAgc_return_1;
  case 2: goto copy_listSAgc_return_2;
  default: goto copy_listSAgc_return_3;
  }}

 pop_continuationB: {
{ SstackS = (ScontS);
  cont_2342X = ScontS;
  pointer_2343X = (((char *) (*((long *) cont_2342X)))) + -2;
  size_2344X = ((((*((unsigned char *) pointer_2343X)))<<8)) + (*((unsigned char *) (pointer_2343X + 1)));
  if ((65535 == size_2344X)) {
    arg0K0 = ((((*((long *) (cont_2342X + 4))))>>2));
    goto L21512;}
  else {
    arg0K0 = size_2344X;
    goto L21512;}}
 L21512: {
  v_2345X = arg0K0;
  ScontS = (cont_2342X + (4 + (((v_2345X)<<2))));
  v_2346X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Scode_pointerS = (((char *) v_2346X));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  goto pop_continuationB_return;}
 pop_continuationB_return:
  switch (pop_continuationB_return_tag) {
  case 0: goto pop_continuationB_return_0;
  case 1: goto pop_continuationB_return_1;
  case 2: goto pop_continuationB_return_2;
  case 3: goto pop_continuationB_return_3;
  case 4: goto pop_continuationB_return_4;
  case 5: goto pop_continuationB_return_5;
  default: goto pop_continuationB_return_6;
  }}

 shift_space: {
  x_865X = merged_arg0K0;
  n_866X = merged_arg0K1;{
  if ((0 == (3 & x_865X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20239;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_865X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20239;}}
 L20239: {
  x_size_2347X = arg0K0;
  extra_2348X = arg0K1;
  if ((n_866X < 0)) {
    if ((x_size_2347X < 1)) {
      arg0K0 = 1;
      goto L20281;}
    else {
      arg0K0 = x_size_2347X;
      goto L20281;}}
  else {
    n_2349X = n_866X / 30;
    arg0K0 = (3 + (((((7 + (((x_size_2347X)<<2))))>>2)) + ((((7 + (((n_2349X)<<2))))>>2))));
    goto L20259;}}
 L20281: {
  v_2350X = arg0K0;
  arg0K0 = (4 + ((-2 & ((((11 + (((v_2350X)<<2))))>>1))) + ((((7 + (((x_size_2347X)<<2))))>>2))));
  goto L20259;}
 L20259: {
  v_2351X = arg0K0;
  shift_space0_return_value = (extra_2348X + v_2351X);
  goto shift_space_return;}
 shift_space_return:
  switch (shift_space_return_tag) {
  case 0: goto shift_space_return_0;
  default: goto shift_space_return_1;
  }}

 proposal_d_write: {
  stob_862X = merged_arg0K0;
  index_863X = merged_arg0K1;
  value_864X = merged_arg0K2;{
  log_2352X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L19809;}
 L19809: {
  i_2353X = arg0K0;
  next_stob_2354X = *((long *) ((((char *) (-3 + log_2352X))) + (((i_2353X)<<2))));
  if ((1 == next_stob_2354X)) {add_log_entryAgc(1, i_2353X, stob_862X, index_863X, value_864X, 0);
    goto proposal_d_write_return;}
  else {
    if ((stob_862X == next_stob_2354X)) {
      if ((index_863X == (*((long *) ((((char *) (-3 + log_2352X))) + (4 + (((i_2353X)<<2)))))))) {
        addr_2355X = (((char *) (-3 + log_2352X))) + (8 + (((i_2353X)<<2)));S48_WRITE_BARRIER(log_2352X, addr_2355X, value_864X);
        *((long *) addr_2355X) = (long) (value_864X);
        goto proposal_d_write_return;}
      else {
        goto L19829;}}
    else {
      goto L19829;}}}
 L19829: {
  arg0K0 = (4 + i_2353X);
  goto L19809;}
 proposal_d_write_return:
  switch (proposal_d_write_return_tag) {
  case 0: goto proposal_d_write_return_0;
  case 1: goto proposal_d_write_return_1;
  default: goto proposal_d_write_return_2;
  }}

 proposal_d_read: {
  stob_860X = merged_arg0K0;
  index_861X = merged_arg0K1;{
  log_2356X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L19632;}
 L19632: {
  i_2357X = arg0K0;
  next_stob_2358X = *((long *) ((((char *) (-3 + log_2356X))) + (((i_2357X)<<2))));
  if ((1 == next_stob_2358X)) {
    v_2359X = add_log_entryAgc(1, i_2357X, stob_860X, index_861X, (*((long *) ((((char *) (-3 + stob_860X))) + (-4 & index_861X)))), 1);
    proposal_d_read0_return_value = v_2359X;
    goto proposal_d_read_return;}
  else {
    if ((stob_860X == next_stob_2358X)) {
      if ((index_861X == (*((long *) ((((char *) (-3 + log_2356X))) + (4 + (((i_2357X)<<2)))))))) {
        proposal_d_read0_return_value = (*((long *) ((((char *) (-3 + log_2356X))) + (8 + (((i_2357X)<<2))))));
        goto proposal_d_read_return;}
      else {
        goto L19654;}}
    else {
      goto L19654;}}}
 L19654: {
  arg0K0 = (4 + i_2357X);
  goto L19632;}
 proposal_d_read_return:
  switch (proposal_d_read_return_tag) {
  case 0: goto proposal_d_read_return_0;
  case 1: goto proposal_d_read_return_1;
  default: goto proposal_d_read_return_2;
  }}

 pending_interruptP: {
{ if ((s48_Spending_eventsPS)) {
    s48_Spending_eventsPS = 0;
    goto L19603;}
  else {
    goto L19589;}}
 L19603: {
  type_2360X = s48_get_next_event(&channel_2361X, &status_2362X);
  if ((type_2360X == ALARM_EVENT)) {
    arg0K0 = 1;
    goto L19609;}
  else {
    if ((type_2360X == KEYBOARD_INTERRUPT_EVENT)) {
      arg0K0 = 2;
      goto L19609;}
    else {
      if ((type_2360X == IO_COMPLETION_EVENT)) {enqueue_channelB(channel_2361X, status_2362X, 1);
        arg0K0 = 8;
        goto L19609;}
      else {
        if ((type_2360X == IO_ERROR_EVENT)) {enqueue_channelB(channel_2361X, status_2362X, 5);
          arg0K0 = 8;
          goto L19609;}
        else {
          if ((type_2360X == OS_SIGNAL_EVENT)) {
            arg0K0 = 16;
            goto L19609;}
          else {
            if ((type_2360X == NO_EVENT)) {
              arg0K0 = 0;
              goto L19609;}
            else {
              if ((type_2360X == ERROR_EVENT)) {
                ps_write_string("OS error while getting event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                ps_write_string((ps_error_string(status_2362X)), (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L19609;}
              else {
                ps_write_string("unknown type of event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L19609;}}}}}}}}
 L19589: {
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}
    else {
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}}
  else {
    pending_interruptP0_return_value = 1;
    goto pending_interruptP_return;}}
 L19609: {
  interrupt_bit_2363X = arg0K0;
  Spending_interruptsS = ((Spending_interruptsS) | interrupt_bit_2363X);
  if ((type_2360X == NO_EVENT)) {
    goto L19589;}
  else {
    goto L19603;}}
 pending_interruptP_return:
  switch (pending_interruptP_return_tag) {
  case 0: goto pending_interruptP_return_0;
  case 1: goto pending_interruptP_return_1;
  case 2: goto pending_interruptP_return_2;
  case 3: goto pending_interruptP_return_3;
  case 4: goto pending_interruptP_return_4;
  case 5: goto pending_interruptP_return_5;
  default: goto pending_interruptP_return_6;
  }}

 make_closure: {
  a_858X = merged_arg0K0;
  b_859X = merged_arg0K1;{
  addr_2364X = s48_allocate_small(12);
  *((long *) addr_2364X) = (long) (2062);
  x_2365X = 3 + (((long) (addr_2364X + 4)));
  *((long *) (((char *) (-3 + x_2365X)))) = (long) (a_858X);
  *((long *) ((((char *) (-3 + x_2365X))) + 4)) = (long) (b_859X);
  if ((3 == (3 & x_2365X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + x_2365X))) + -4)))))) {
      *((long *) ((((char *) (-3 + x_2365X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_2365X))) + -4)))));
      make_closure0_return_value = x_2365X;
      goto make_closure_return;}
    else {
      make_closure0_return_value = x_2365X;
      goto make_closure_return;}}
  else {
    make_closure0_return_value = x_2365X;
    goto make_closure_return;}}
 make_closure_return:
  switch (make_closure_return_tag) {
  case 0: goto make_closure_return_0;
  default: goto make_closure_return_1;
  }}

 get_current_port: {
  marker_857X = merged_arg0K0;{
  thread_2366X = Scurrent_threadS;
  if ((3 == (3 & thread_2366X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thread_2366X))) + -4))))>>2))))) {
      if ((1 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thread_2366X))) + -4))))>>8))))>>2)))) {
        arg0K0 = (*((long *) ((((char *) (-3 + thread_2366X))) + 4)));
        goto L17460;}
      else {
        goto L17510;}}
    else {
      goto L17510;}}
  else {
    goto L17510;}}
 L17460: {
  env_2367X = arg0K0;
  if ((3 == (3 & env_2367X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + env_2367X))) + -4))))>>2))))) {
      obj_2368X = *((long *) (((char *) (-3 + env_2367X))));
      if ((3 == (3 & obj_2368X))) {
        if ((0 == (31 & ((((*((long *) ((((char *) (-3 + obj_2368X))) + -4))))>>2))))) {
          if ((marker_857X == (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + env_2367X)))))))))))) {
            get_current_port0_return_value = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + env_2367X)))))))) + 4)));
            goto get_current_port_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + env_2367X))) + 4)));
            goto L17460;}}
        else {
          goto L17532;}}
      else {
        goto L17532;}}
    else {
      goto L17532;}}
  else {
    goto L17532;}}
 L17510: {
  ps_error("current thread is not a record", 0);
  get_current_port0_return_value = v_2369X;
  goto get_current_port_return;}
 L17532: {
  if ((25 == env_2367X)) {
    if (((((marker_857X)>>2)) == 1)) {
      arg4K0 = "dynamic environment doesn't have current-output-port";
      goto L17486;}
    else {
      arg4K0 = "dynamic environment doesn't have current-input-port";
      goto L17486;}}
  else {
    ps_error("dynamic environment is not a proper list", 0);
    goto get_current_port_return;}}
 L17486: {
  v_2370X = arg4K0;
  ps_error(v_2370X, 0);
  goto get_current_port_return;}
 get_current_port_return:
  switch (get_current_port_return_tag) {
  case 0: goto get_current_port_return_0;
  case 1: goto get_current_port_return_1;
  case 2: goto get_current_port_return_2;
  case 3: goto get_current_port_return_3;
  case 4: goto get_current_port_return_4;
  default: goto get_current_port_return_5;
  }}

 okay_argument_list: {
  list_856X = merged_arg0K0;{
  arg0K0 = list_856X;
  arg0K1 = 0;
  arg0K2 = list_856X;
  arg3K3 = 0;
  goto L17327;}
 L17327: {
  fast_2371X = arg0K0;
  len_2372X = arg0K1;
  slow_2373X = arg0K2;
  move_slowP_2374X = arg3K3;
  if ((25 == fast_2371X)) {
    okay_argument_list0_return_value = 1;
    okay_argument_list1_return_value = len_2372X;
    goto okay_argument_list_return;}
  else {
    if ((3 == (3 & fast_2371X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + fast_2371X))) + -4))))>>2))))) {
        if (move_slowP_2374X) {
          if ((fast_2371X == slow_2373X)) {
            okay_argument_list0_return_value = 0;
            okay_argument_list1_return_value = 0;
            goto okay_argument_list_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + fast_2371X))) + 4)));
            arg0K1 = (1 + len_2372X);
            arg0K2 = (*((long *) ((((char *) (-3 + slow_2373X))) + 4)));
            arg3K3 = 0;
            goto L17327;}}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + fast_2371X))) + 4)));
          arg0K1 = (1 + len_2372X);
          arg0K2 = slow_2373X;
          arg3K3 = 1;
          goto L17327;}}
      else {
        okay_argument_list0_return_value = 0;
        okay_argument_list1_return_value = 0;
        goto okay_argument_list_return;}}
    else {
      okay_argument_list0_return_value = 0;
      okay_argument_list1_return_value = 0;
      goto okay_argument_list_return;}}}
 okay_argument_list_return:
  switch (okay_argument_list_return_tag) {
  case 0: goto okay_argument_list_return_0;
  case 1: goto okay_argument_list_return_1;
  default: goto okay_argument_list_return_2;
  }}

 copy_continuation_from_heapB: {
  cont_854X = merged_arg0K0;
  stack_arg_count_855X = merged_arg0K1;{
  stack_size_2375X = -2 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_854X))) + -4))))>>8))))>>2));
  new_cont_2376X = (Sbottom_of_stackS) + (0 - (((stack_size_2375X)<<2)));
  if ((0 == stack_arg_count_855X)) {
    SstackS = new_cont_2376X;
    goto L17156;}
  else {
    new_stack_2377X = new_cont_2376X + (0 - (((stack_arg_count_855X)<<2)));
    if ((new_stack_2377X < (SstackS))) {
      memmove((void *)new_stack_2377X, (void *)(SstackS),(((stack_arg_count_855X)<<2)));
      SstackS = new_stack_2377X;
      goto L17156;}
    else {
      goto L17156;}}}
 L17156: {
  ScontS = new_cont_2376X;
  memmove((void *)(new_cont_2376X + 4), (void *)((((char *) (-3 + cont_854X))) + 12),(-4 + (((stack_size_2375X)<<2))));
  *((long *) new_cont_2376X) = (long) ((((long) ((((char *) (-3 + (*((long *) ((((char *) (-3 + cont_854X))) + 4)))))) + ((((*((long *) (((char *) (-3 + cont_854X))))))>>2))))));
  Sheap_continuationS = (*((long *) ((((char *) (-3 + cont_854X))) + 8)));
  copy_continuation_from_heapB0_return_value = new_cont_2376X;
  goto copy_continuation_from_heapB_return;}
 copy_continuation_from_heapB_return:
  switch (copy_continuation_from_heapB_return_tag) {
  case 0: goto copy_continuation_from_heapB_return_0;
  case 1: goto copy_continuation_from_heapB_return_1;
  default: goto copy_continuation_from_heapB_return_2;
  }}

 get_error_string: {
  status_853X = merged_arg0K0;{
  string_2378X = ps_error_string(status_853X);
  x_2379X = strlen((char *) string_2378X);
  if ((x_2379X < 512)) {
    arg0K0 = x_2379X;
    goto L16142;}
  else {
    arg0K0 = 512;
    goto L16142;}}
 L16142: {
  len_2380X = arg0K0;
  len_2381X = ((len_2380X)<<2);
  addr_2382X = s48_allocate_small((4 + len_2381X));
  *((long *) addr_2382X) = (long) ((66 + (((len_2381X)<<8))));
  new_2383X = 3 + (((long) (addr_2382X + 4)));
  arg0K0 = 0;
  goto L16152;}
 L16152: {
  i_2384X = arg0K0;
  if ((i_2384X == len_2380X)) {
    get_error_string0_return_value = new_2383X;
    goto get_error_string_return;}
  else {
    c_2385X = ((unsigned char) (*(string_2378X + i_2384X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_2385X;
    goto L16191;}}
 L16191: {
  bits_2386X = arg0K0;
  j_2387X = arg0K1;
  shifted_2388X = arg0K2;
  if ((j_2387X < 4)) {
    *((unsigned char *) ((((char *) (-3 + new_2383X))) + ((((i_2384X)<<2)) + j_2387X))) = (unsigned char) ((255 & shifted_2388X));
    arg0K0 = (8 + bits_2386X);
    arg0K1 = (1 + j_2387X);
    arg0K2 = ((long)(((unsigned long)shifted_2388X)>>8));
    goto L16191;}
  else {
    arg0K0 = (1 + i_2384X);
    goto L16152;}}
 get_error_string_return:
  switch (get_error_string_return_tag) {
  case 0: goto get_error_string_return_0;
  case 1: goto get_error_string_return_1;
  case 2: goto get_error_string_return_2;
  default: goto get_error_string_return_3;
  }}

 s48_pop_interrupt_state: {
{ p_2389X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Senabled_interruptsS = (((p_2389X)>>2));
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L12139;}
    else {
      goto L12139;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L12139;}}
 L12139: {
  proposal_2390X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  x_2391X = Scurrent_threadS;
  addr_2392X = (((char *) (-3 + x_2391X))) + 12;S48_WRITE_BARRIER(x_2391X, addr_2392X, proposal_2390X);
  *((long *) addr_2392X) = (long) (proposal_2390X);
  goto s48_pop_interrupt_state_return;}
 s48_pop_interrupt_state_return:
  switch (s48_pop_interrupt_state_return_tag) {
  case 0: goto s48_pop_interrupt_state_return_0;
  case 1: goto s48_pop_interrupt_state_return_1;
  default: goto s48_pop_interrupt_state_return_2;
  }}

 move_args_above_contB: {
  nargs_852X = merged_arg0K0;{
  top_of_args_2393X = SstackS;
  if (((ScontS) == (top_of_args_2393X + (((nargs_852X)<<2))))) {
    goto move_args_above_contB_return;}
  else {
    SstackS = (ScontS);
    arg2K0 = ((SstackS) + -4);
    arg2K1 = (top_of_args_2393X + (-4 + (((nargs_852X)<<2))));
    goto L7741;}}
 L7741: {
  loc_2394X = arg2K0;
  arg_2395X = arg2K1;
  if ((arg_2395X < top_of_args_2393X)) {
    SstackS = ((SstackS) + (0 - (((nargs_852X)<<2))));
    goto move_args_above_contB_return;}
  else {
    *((long *) loc_2394X) = (long) ((*((long *) arg_2395X)));
    arg2K0 = (loc_2394X + -4);
    arg2K1 = (arg_2395X + -4);
    goto L7741;}}
 move_args_above_contB_return:
  switch (move_args_above_contB_return_tag) {
  case 0: goto move_args_above_contB_return_0;
  case 1: goto move_args_above_contB_return_1;
  case 2: goto move_args_above_contB_return_2;
  case 3: goto move_args_above_contB_return_3;
  case 4: goto move_args_above_contB_return_4;
  case 5: goto move_args_above_contB_return_5;
  case 6: goto move_args_above_contB_return_6;
  case 7: goto move_args_above_contB_return_7;
  default: goto move_args_above_contB_return_8;
  }}

}
long s48_call_startup_procedure(char **startup_vector_2396X, long startup_vector_length_2397X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long merged_arg0K1;
  char *merged_arg4K0;

  int enter_string_return_tag;
  long enter_string0_return_value;
  char *string_2398X;
  long shifted_2455X;
  long j_2454X;
  long bits_2453X;
  long c_2452X;
  long i_2451X;
  long s_2450X;
  char * addr_2449X;
  long len_2448X;
  long len_2447X;
  long v_2446X;
  long x_2445X;
  long error_encoding_2444X;
  long output_encoding_2443X;
  long input_encoding_2442X;
  long vm_channel_2441X;
  long v_2440X;
  long channel_2439X;
  long vm_channel_2438X;
  long v_2437X;
  long channel_2436X;
  long vm_channel_2435X;
  long v_2434X;
  long channel_2433X;
  char *error_encoding_2432X;
  long v_2431X;
  char *input_encoding_2430X;
  long v_2429X;
  char *output_encoding_2428X;
  long v_2427X;
  long i_2426X;
  long length_2425X;
  long *v_2424X;
  long v_2423X;
  long v_2422X;
  long y_2421X;
  long x_2420X;
  long v_2419X;
  char * addr_2418X;
  long i_2417X;
  long x_2416X;
  long y_2415X;
  long vec_2414X;
  char * addr_2413X;
  long length_2412X;
  long len_2411X;
  char *s_2410X;
  long y_2409X;
  long x_2408X;
  long i_2407X;
  long vector_2406X;
  char * addr_2405X;
  long len_2404X;
  long count_2403X;
  long i_2402X;
  long code_2401X;
  long code_2400X;
  long code_2399X;
 {  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);
  code_2399X = Sinterrupted_byte_opcode_return_codeS;
  Slast_code_calledS = code_2399X;
  Scode_pointerS = (((char *) (-3 + code_2399X)));
  code_2400X = Sinterrupted_native_call_return_codeS;
  Slast_code_calledS = code_2400X;
  Scode_pointerS = (((char *) (-3 + code_2400X)));
  code_2401X = Snative_poll_return_codeS;
  Slast_code_calledS = code_2401X;
  Scode_pointerS = (((char *) (-3 + code_2401X)));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  SvalS = 13;
  Scurrent_threadS = 25;SHARED_SETB((Ssession_dataS), 25);SHARED_SETB((Sexception_handlersS), 25);SHARED_SETB((Sinterrupt_handlersS), 25);
  Senabled_interruptsS = 0;SHARED_SETB((Sfinalizer_alistS), 25);
  Sfinalize_theseS = 25;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Sinterrupted_templateS = 1;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L19415;}
 L19415: {
  i_2402X = arg0K0;
  count_2403X = arg0K1;
  if ((i_2402X == startup_vector_length_2397X)) {s48_make_availableAgc(((((((1 + startup_vector_length_2397X) + startup_vector_length_2397X) + ((((3 + count_2403X))>>2))))<<2)));
    len_2404X = ((startup_vector_length_2397X)<<2);
    addr_2405X = s48_allocate_small((4 + len_2404X));
    *((long *) addr_2405X) = (long) ((10 + (((len_2404X)<<8))));
    vector_2406X = 3 + (((long) (addr_2405X + 4)));
    arg0K0 = 0;
    goto L19532;}
  else {
    arg0K0 = (1 + i_2402X);
    arg0K1 = (1 + (count_2403X + (strlen((char *) (*(startup_vector_2396X + i_2402X))))));
    goto L19415;}}
 L19532: {
  i_2407X = arg0K0;
  if ((i_2407X == startup_vector_length_2397X)) {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vector_2406X);
    x_2408X = STDOUT_FD();
    y_2409X = STDERR_FD();
    if ((x_2408X < y_2409X)) {
      arg0K0 = y_2409X;
      goto L25254;}
    else {
      arg0K0 = x_2408X;
      goto L25254;}}
  else {
    s_2410X = *(startup_vector_2396X + i_2407X);
    len_2411X = strlen((char *) s_2410X);
    length_2412X = 1 + len_2411X;
    addr_2413X = s48_allocate_small((4 + length_2412X));
    *((long *) addr_2413X) = (long) ((70 + (((length_2412X)<<8))));
    vec_2414X = 3 + (((long) (addr_2413X + 4)));
    arg0K0 = 0;
    goto L19552;}}
 L25254: {
  y_2415X = arg0K0;
  x_2416X = STDIN_FD();
  if ((x_2416X < y_2415X)) {
    arg0K0 = y_2415X;
    goto L25256;}
  else {
    arg0K0 = x_2416X;
    goto L25256;}}
 L19552: {
  i_2417X = arg0K0;
  if ((len_2411X < i_2417X)) {
    addr_2418X = (((char *) (-3 + vector_2406X))) + (((i_2407X)<<2));S48_WRITE_BARRIER(vector_2406X, addr_2418X, vec_2414X);
    *((long *) addr_2418X) = (long) (vec_2414X);
    arg0K0 = (1 + i_2407X);
    goto L19532;}
  else {
    *((unsigned char *) ((((char *) (-3 + vec_2414X))) + i_2417X)) = (unsigned char) ((((unsigned char) (*(s_2410X + i_2417X)))));
    arg0K0 = (1 + i_2417X);
    goto L19552;}}
 L25256: {
  v_2419X = arg0K0;
  x_2420X = Snumber_of_channelsS;
  y_2421X = 1 + v_2419X;
  if ((x_2420X < y_2421X)) {
    arg0K0 = y_2421X;
    goto L25258;}
  else {
    arg0K0 = x_2420X;
    goto L25258;}}
 L25258: {
  v_2422X = arg0K0;
  Snumber_of_channelsS = v_2422X;
  v_2423X = STDIN_FD();
  Svm_channelsS = ((long*)malloc(sizeof(long) * (Snumber_of_channelsS)));
  Spending_channels_headS = 1;
  Spending_channels_tailS = 1;
  if ((NULL == (Svm_channelsS))) {
    ps_error("out of memory, unable to continue", 0);
    goto L25280;}
  else {
    goto L25280;}}
 L25280: {
  v_2424X = Svm_channelsS;
  length_2425X = Snumber_of_channelsS;
  arg0K0 = 0;
  goto L25380;}
 L25380: {
  i_2426X = arg0K0;
  if ((i_2426X < length_2425X)) {
    *(v_2424X + i_2426X) = 1;
    arg0K0 = (1 + i_2426X);
    goto L25380;}
  else {
    v_2427X = STDOUT_FD();
    output_encoding_2428X = ps_console_encoding(v_2427X);
    v_2429X = STDIN_FD();
    input_encoding_2430X = ps_console_encoding(v_2429X);
    v_2431X = STDERR_FD();
    error_encoding_2432X = ps_console_encoding(v_2431X);
    if ((NULL == input_encoding_2430X)) {
      goto L25317;}
    else {
      if ((NULL == output_encoding_2428X)) {
        goto L25317;}
      else {
        if ((NULL == error_encoding_2432X)) {
          goto L25317;}
        else {
          goto L25322;}}}}}
 L25317: {
  ps_error("out of memory, unable to continue", 0);
  goto L25322;}
 L25322: {
s48_make_availableAgc(((((3 * (12 + (((((((3 + ((((strlen((char *) "standard output")))<<2))))>>2)) + ((((3 + ((((strlen((char *) input_encoding_2430X)))<<2))))>>2))) + ((((3 + ((((strlen((char *) output_encoding_2428X)))<<2))))>>2))) + ((((3 + ((((strlen((char *) error_encoding_2432X)))<<2))))>>2))))))<<2)));
  channel_2433X = STDERR_FD();
  merged_arg4K0 = "standard error";
  merged_arg0K1 = 0;
  enter_string_return_tag = 0;
  goto enter_string;
 enter_string_return_0:
  v_2434X = enter_string0_return_value;
  vm_channel_2435X = make_channel(8, v_2434X, (((channel_2433X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2433X) = vm_channel_2435X;
  channel_2436X = STDIN_FD();
  merged_arg4K0 = "standard input";
  merged_arg0K1 = 0;
  enter_string_return_tag = 1;
  goto enter_string;
 enter_string_return_1:
  v_2437X = enter_string0_return_value;
  vm_channel_2438X = make_channel(4, v_2437X, (((channel_2436X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2436X) = vm_channel_2438X;
  channel_2439X = STDOUT_FD();
  merged_arg4K0 = "standard output";
  merged_arg0K1 = 0;
  enter_string_return_tag = 2;
  goto enter_string;
 enter_string_return_2:
  v_2440X = enter_string0_return_value;
  vm_channel_2441X = make_channel(8, v_2440X, (((channel_2439X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2439X) = vm_channel_2441X;
  merged_arg4K0 = input_encoding_2430X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 3;
  goto enter_string;
 enter_string_return_3:
  input_encoding_2442X = enter_string0_return_value;
  merged_arg4K0 = output_encoding_2428X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 4;
  goto enter_string;
 enter_string_return_4:
  output_encoding_2443X = enter_string0_return_value;
  merged_arg4K0 = error_encoding_2432X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 5;
  goto enter_string;
 enter_string_return_5:
  error_encoding_2444X = enter_string0_return_value;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2438X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (input_encoding_2442X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (output_encoding_2443X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2435X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (error_encoding_2444X);
  x_2445X = s48_resumer_records();
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2445X);s48_initialization_completeB();
  v_2446X = s48_startup_procedure();
  return s48_restart(v_2446X, 8);}
 enter_string: {
  string_2398X = merged_arg4K0;{
  len_2447X = strlen((char *) string_2398X);
  len_2448X = ((len_2447X)<<2);
  addr_2449X = s48_allocate_small((4 + len_2448X));
  *((long *) addr_2449X) = (long) ((66 + (((len_2448X)<<8))));
  s_2450X = 3 + (((long) (addr_2449X + 4)));
  arg0K0 = 0;
  goto L16735;}
 L16735: {
  i_2451X = arg0K0;
  if ((i_2451X < len_2447X)) {
    c_2452X = ((unsigned char) (*(string_2398X + i_2451X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_2452X;
    goto L16746;}
  else {
    enter_string0_return_value = s_2450X;
    goto enter_string_return;}}
 L16746: {
  bits_2453X = arg0K0;
  j_2454X = arg0K1;
  shifted_2455X = arg0K2;
  if ((j_2454X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_2450X))) + ((((i_2451X)<<2)) + j_2454X))) = (unsigned char) ((255 & shifted_2455X));
    arg0K0 = (8 + bits_2453X);
    arg0K1 = (1 + j_2454X);
    arg0K2 = ((long)(((unsigned long)shifted_2455X)>>8));
    goto L16746;}
  else {
    arg0K0 = (1 + i_2451X);
    goto L16735;}}
 enter_string_return:
  switch (enter_string_return_tag) {
  case 0: goto enter_string_return_0;
  case 1: goto enter_string_return_1;
  case 2: goto enter_string_return_2;
  case 3: goto enter_string_return_3;
  case 4: goto enter_string_return_4;
  default: goto enter_string_return_5;
  }}

}void
s48_init(void)
{
Snumber_of_channelsS = 100;
Spending_channels_headS = 1;
Spending_channels_tailS = 1;
Sutf_8_state_tableS = malloc(128 * sizeof(long));
Sutf_8_state_tableS[0] = 0;
Sutf_8_state_tableS[1] = 0;
Sutf_8_state_tableS[2] = 0;
Sutf_8_state_tableS[3] = 0;
Sutf_8_state_tableS[4] = 0;
Sutf_8_state_tableS[5] = 0;
Sutf_8_state_tableS[6] = 0;
Sutf_8_state_tableS[7] = 0;
Sutf_8_state_tableS[8] = 0;
Sutf_8_state_tableS[9] = 0;
Sutf_8_state_tableS[10] = 0;
Sutf_8_state_tableS[11] = 0;
Sutf_8_state_tableS[12] = 0;
Sutf_8_state_tableS[13] = 0;
Sutf_8_state_tableS[14] = 0;
Sutf_8_state_tableS[15] = 0;
Sutf_8_state_tableS[16] = -1;
Sutf_8_state_tableS[17] = -1;
Sutf_8_state_tableS[18] = -1;
Sutf_8_state_tableS[19] = -1;
Sutf_8_state_tableS[20] = -1;
Sutf_8_state_tableS[21] = -1;
Sutf_8_state_tableS[22] = -1;
Sutf_8_state_tableS[23] = -1;
Sutf_8_state_tableS[24] = 1;
Sutf_8_state_tableS[25] = 1;
Sutf_8_state_tableS[26] = 1;
Sutf_8_state_tableS[27] = 1;
Sutf_8_state_tableS[28] = 2;
Sutf_8_state_tableS[29] = 2;
Sutf_8_state_tableS[30] = 3;
Sutf_8_state_tableS[31] = -1;
Sutf_8_state_tableS[32] = -2;
Sutf_8_state_tableS[33] = -2;
Sutf_8_state_tableS[34] = -2;
Sutf_8_state_tableS[35] = -2;
Sutf_8_state_tableS[36] = -2;
Sutf_8_state_tableS[37] = -2;
Sutf_8_state_tableS[38] = -2;
Sutf_8_state_tableS[39] = -2;
Sutf_8_state_tableS[40] = -2;
Sutf_8_state_tableS[41] = -2;
Sutf_8_state_tableS[42] = -2;
Sutf_8_state_tableS[43] = -2;
Sutf_8_state_tableS[44] = -2;
Sutf_8_state_tableS[45] = -2;
Sutf_8_state_tableS[46] = -2;
Sutf_8_state_tableS[47] = -2;
Sutf_8_state_tableS[48] = 0;
Sutf_8_state_tableS[49] = 0;
Sutf_8_state_tableS[50] = 0;
Sutf_8_state_tableS[51] = 0;
Sutf_8_state_tableS[52] = 0;
Sutf_8_state_tableS[53] = 0;
Sutf_8_state_tableS[54] = 0;
Sutf_8_state_tableS[55] = 0;
Sutf_8_state_tableS[56] = -2;
Sutf_8_state_tableS[57] = -2;
Sutf_8_state_tableS[58] = -2;
Sutf_8_state_tableS[59] = -2;
Sutf_8_state_tableS[60] = -2;
Sutf_8_state_tableS[61] = -2;
Sutf_8_state_tableS[62] = -2;
Sutf_8_state_tableS[63] = -2;
Sutf_8_state_tableS[64] = -2;
Sutf_8_state_tableS[65] = -2;
Sutf_8_state_tableS[66] = -2;
Sutf_8_state_tableS[67] = -2;
Sutf_8_state_tableS[68] = -2;
Sutf_8_state_tableS[69] = -2;
Sutf_8_state_tableS[70] = -2;
Sutf_8_state_tableS[71] = -2;
Sutf_8_state_tableS[72] = -2;
Sutf_8_state_tableS[73] = -2;
Sutf_8_state_tableS[74] = -2;
Sutf_8_state_tableS[75] = -2;
Sutf_8_state_tableS[76] = -2;
Sutf_8_state_tableS[77] = -2;
Sutf_8_state_tableS[78] = -2;
Sutf_8_state_tableS[79] = -2;
Sutf_8_state_tableS[80] = 1;
Sutf_8_state_tableS[81] = 1;
Sutf_8_state_tableS[82] = 1;
Sutf_8_state_tableS[83] = 1;
Sutf_8_state_tableS[84] = 1;
Sutf_8_state_tableS[85] = 1;
Sutf_8_state_tableS[86] = 1;
Sutf_8_state_tableS[87] = 1;
Sutf_8_state_tableS[88] = -2;
Sutf_8_state_tableS[89] = -2;
Sutf_8_state_tableS[90] = -2;
Sutf_8_state_tableS[91] = -2;
Sutf_8_state_tableS[92] = -2;
Sutf_8_state_tableS[93] = -2;
Sutf_8_state_tableS[94] = -2;
Sutf_8_state_tableS[95] = -2;
Sutf_8_state_tableS[96] = -2;
Sutf_8_state_tableS[97] = -2;
Sutf_8_state_tableS[98] = -2;
Sutf_8_state_tableS[99] = -2;
Sutf_8_state_tableS[100] = -2;
Sutf_8_state_tableS[101] = -2;
Sutf_8_state_tableS[102] = -2;
Sutf_8_state_tableS[103] = -2;
Sutf_8_state_tableS[104] = -2;
Sutf_8_state_tableS[105] = -2;
Sutf_8_state_tableS[106] = -2;
Sutf_8_state_tableS[107] = -2;
Sutf_8_state_tableS[108] = -2;
Sutf_8_state_tableS[109] = -2;
Sutf_8_state_tableS[110] = -2;
Sutf_8_state_tableS[111] = -2;
Sutf_8_state_tableS[112] = 2;
Sutf_8_state_tableS[113] = 2;
Sutf_8_state_tableS[114] = 2;
Sutf_8_state_tableS[115] = 2;
Sutf_8_state_tableS[116] = 2;
Sutf_8_state_tableS[117] = 2;
Sutf_8_state_tableS[118] = 2;
Sutf_8_state_tableS[119] = 2;
Sutf_8_state_tableS[120] = -2;
Sutf_8_state_tableS[121] = -2;
Sutf_8_state_tableS[122] = -2;
Sutf_8_state_tableS[123] = -2;
Sutf_8_state_tableS[124] = -2;
Sutf_8_state_tableS[125] = -2;
Sutf_8_state_tableS[126] = -2;
Sutf_8_state_tableS[127] = -2;
Sutf_8_masksS = malloc(4 * sizeof(long));
Sutf_8_masksS[0] = 127;
Sutf_8_masksS[1] = 31;
Sutf_8_masksS[2] = 15;
Sutf_8_masksS[3] = 7;
Stemp0S = 1;
Stemp1S = 1;
Sstack_warningPS = 1;
Sos_signal_ringS = malloc(32 * sizeof(long));
Sos_signal_ringS[0] = 0;
Sos_signal_ringS[1] = 0;
Sos_signal_ringS[2] = 0;
Sos_signal_ringS[3] = 0;
Sos_signal_ringS[4] = 0;
Sos_signal_ringS[5] = 0;
Sos_signal_ringS[6] = 0;
Sos_signal_ringS[7] = 0;
Sos_signal_ringS[8] = 0;
Sos_signal_ringS[9] = 0;
Sos_signal_ringS[10] = 0;
Sos_signal_ringS[11] = 0;
Sos_signal_ringS[12] = 0;
Sos_signal_ringS[13] = 0;
Sos_signal_ringS[14] = 0;
Sos_signal_ringS[15] = 0;
Sos_signal_ringS[16] = 0;
Sos_signal_ringS[17] = 0;
Sos_signal_ringS[18] = 0;
Sos_signal_ringS[19] = 0;
Sos_signal_ringS[20] = 0;
Sos_signal_ringS[21] = 0;
Sos_signal_ringS[22] = 0;
Sos_signal_ringS[23] = 0;
Sos_signal_ringS[24] = 0;
Sos_signal_ringS[25] = 0;
Sos_signal_ringS[26] = 0;
Sos_signal_ringS[27] = 0;
Sos_signal_ringS[28] = 0;
Sos_signal_ringS[29] = 0;
Sos_signal_ringS[30] = 0;
Sos_signal_ringS[31] = 0;
Sos_signal_ring_startS = 0;
Sos_signal_ring_readyS = 0;
Sos_signal_ring_endS = 0;
Sexternal_exceptionPS = 0;
Simported_bindingsS = 1;
Sexported_bindingsS = 1;
Sexternal_root_stackS = NULL;
Sexternal_root_stack_baseS = NULL;
Spermanent_external_rootsS = NULL;
Spost_gc_cleanupS = HtopD11555;
Sgc_root_procS = HtopD11566;
Snative_exception_contS = 0;
s48_Scallback_return_stack_blockS = 1;
s48_Spending_eventsPS = 0;
}
